diff --git a/src/seq/seqCom.h b/src/seq/seqCom.h index 49e84965d23effda6e7195036da1485f0fb827d1..800386c3f608294c1f324308f0a05baa7e338eda 100644 --- a/src/seq/seqCom.h +++ b/src/seq/seqCom.h @@ -221,7 +221,7 @@ epicsShareFunc void epicsShareAPI seqChanShow(epicsThreadId, const char *); epicsShareFunc void epicsShareAPI seqcar(int level); epicsShareFunc void epicsShareAPI seqQueueShow(epicsThreadId); epicsShareFunc void epicsShareAPI seqStop(epicsThreadId); -epicsShareFunc void epicsShareAPI seq(seqProgram *, const char *, unsigned); +epicsShareFunc epicsThreadId epicsShareAPI seq(seqProgram *, const char *, unsigned); /* called by generated main and registrar routines */ epicsShareFunc void epicsShareAPI seqRegisterSequencerProgram(seqProgram *p); epicsShareFunc void epicsShareAPI seqRegisterSequencerCommands(void); diff --git a/src/seq/seq_main.c b/src/seq/seq_main.c index ae2240060f44b2f1e699d6e14b16ff6a58920a77..a97a65c03377276fb2ebc7ed1a3828be609aefbb 100644 --- a/src/seq/seq_main.c +++ b/src/seq/seq_main.c @@ -29,7 +29,7 @@ static PVTYPE *find_type(const char *userType); * Creates the initial state program thread and returns its thread id. * Most initialization is performed here. */ -epicsShareFunc void epicsShareAPI seq( +epicsShareFunc epicsThreadId epicsShareAPI seq( seqProgram *seqProg, const char *macroDef, unsigned stackSize) { epicsThreadId tid; @@ -48,7 +48,7 @@ epicsShareFunc void epicsShareAPI seq( if (!seqProg) { errlogSevPrintf(errlogFatal, "seq: bad first argument seqProg (is NULL)\n"); - return; + return 0; } /* Check for correct state program format */ @@ -57,14 +57,14 @@ epicsShareFunc void epicsShareAPI seq( errlogSevPrintf(errlogFatal, "seq: illegal magic number in state program.\n" " - probable mismatch between SNC & SEQ versions\n" " - re-compile your program?\n"); - return; + return 0; } sp = new(SPROG); if (!sp) { errlogSevPrintf(errlogFatal, "seq: calloc failed\n"); - return; + return 0; } /* Parse the macro definitions from the "program" statement */ @@ -75,7 +75,7 @@ epicsShareFunc void epicsShareAPI seq( /* Initialize program struct */ if (!init_sprog(sp, seqProg)) - return; + return 0; /* Specify stack size */ if (stackSize == 0) @@ -112,11 +112,13 @@ epicsShareFunc void epicsShareAPI seq( if (!tid) { errlogSevPrintf(errlogFatal, "seq: epicsThreadCreate failed"); - return; + return 0; } printf("Spawning sequencer program \"%s\", thread %p: \"%s\"\n", sp->progName, tid, threadName); + + return tid; } /*