From: Dmitry Y. <di...@us...> - 2005-08-30 08:53:24
|
Update of /cvsroot/firebird/vulcan/src/jrd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13650 Modified Files: svc.cpp svc.h Log Message: Backported the "gbak -se" patch. Index: svc.cpp =================================================================== RCS file: /cvsroot/firebird/vulcan/src/jrd/svc.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -b -U3 -r1.6 -r1.7 --- svc.cpp 5 Aug 2005 16:09:37 -0000 1.6 +++ svc.cpp 30 Aug 2005 08:53:11 -0000 1.7 @@ -613,7 +613,8 @@ //service->blk_pool_id = 0; //service->blk_length = 0; service->svc_service = serv; - service->svc_flags = serv->serv_executable ? SVC_forked : 0; + service->svc_flags = + (serv->serv_executable ? SVC_forked : 0) | (switches ? SVC_cmd_line : 0); service->svc_switches = switches; service->svc_handle = 0; service->svc_user_flag = user_flag; @@ -1746,16 +1747,16 @@ * we must reset the service flags. */ - if (!(service->svc_flags & SVC_detached)) - service->svc_flags = 0; - - service->svc_flags |= SVC_thd_running; - - if (service->svc_switches) + if (service->svc_switches && !(service->svc_flags & SVC_cmd_line)) { gds__free(service->svc_switches); service->svc_switches = NULL; } + + if (!(service->svc_flags & SVC_detached)) + service->svc_flags = 0; + + service->svc_flags |= SVC_thd_running; } sync.unlock(); Index: svc.h =================================================================== RCS file: /cvsroot/firebird/vulcan/src/jrd/svc.h,v retrieving revision 1.2 retrieving revision 1.3 diff -b -U3 -r1.2 -r1.3 --- svc.h 5 Aug 2005 16:09:37 -0000 1.2 +++ svc.h 30 Aug 2005 08:53:11 -0000 1.3 @@ -166,7 +166,7 @@ #define SVC_finished 16 #define SVC_thd_running 32 #define SVC_evnt_fired 64 - +#define SVC_cmd_line 128 typedef int (*pfn_svc_output)(svc*, const UCHAR*); |