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