From 5b1ecb46322fbc8b0281fb0333b1fcdbc39cd1fb Mon Sep 17 00:00:00 2001 From: "benjamin.franksen" <benjamin.franksen@helmholtz-berlin.de> Date: Fri, 31 Aug 2012 13:28:47 +0000 Subject: [PATCH] seq: revert seq() back to returning thread id of 1st state set --- src/seq/seqCom.h | 2 +- src/seq/seq_main.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/seq/seqCom.h b/src/seq/seqCom.h index 49e84965..800386c3 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 ae224006..a97a65c0 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; } /* -- GitLab