DosResumeThread: Difference between revisions
Appearance
m Ak120 moved page OS2 API:CPI:DosResumeThread to DosResumeThread |
mNo edit summary |
||
Line 1: | Line 1: | ||
Restarts a thread that was previously stopped with DosSuspendThread. | Restarts a thread that was previously stopped with DosSuspendThread. | ||
Line 11: | Line 10: | ||
ulrc = DosResumeThread(tid); | ulrc = DosResumeThread(tid); | ||
</PRE> | |||
==Parameters== | ==Parameters== | ||
; | ;tid (TID) - input : Thread identifier of the resumed thread. | ||
==Return Code== | ==Return Code== | ||
ulrc (APIRET) - returns | ulrc (APIRET) - returns | ||
DosResumeThread returns one of the following values: | DosResumeThread returns one of the following values: | ||
* 0 NO_ERROR | * 0 NO_ERROR | ||
* 90 ERROR_NOT_FROZEN | * 90 ERROR_NOT_FROZEN | ||
Line 91: | Line 89: | ||
return; | return; | ||
} | } | ||
</PRE> | |||
==Related Functions== | ==Related Functions== | ||
* [[ | * [[DosCreateThread]] | ||
* [[ | * [[DosQueryThreadContext]] | ||
* [[ | * [[DosSuspendThread]] | ||
[[Category: | [[Category:Dos]] |
Revision as of 06:39, 9 January 2017
Restarts a thread that was previously stopped with DosSuspendThread.
Syntax
#define INCL_DOSPROCESS #include <os2.h> TID tid; /* Thread identifier of the resumed thread. */ APIRET ulrc; /* Return Code. */ ulrc = DosResumeThread(tid);
Parameters
- tid (TID) - input
- Thread identifier of the resumed thread.
Return Code
ulrc (APIRET) - returns
DosResumeThread returns one of the following values:
- 0 NO_ERROR
- 90 ERROR_NOT_FROZEN
- 309 ERROR_INVALID_THREADID
Remarks
If the thread is not in a suspended state when you issue DosResumeThread for it, ERROR_NOT_FROZEN is returned.
Example Code
This example creates a new thread within a process, sleeps for 1 second, suspends the thread for 5 seconds, and then waits for the thread to terminate.
Compile this example with MULTITHREAD LIBRARIES. If you are using CSet/2, use the /Gm+ switch.
#define INCL_DOSPROCESS /* Process and thread values */ #define INCL_DOSERRORS /* DOS error values */ #include <os2.h> #include <stdio.h> void _System CntThreadProc(ULONG LoopMax); /* Count Thread */ int main(VOID) { TID tidCntThread = 0; /* ID returned for newly created thread */ PFNTHREAD pfnCntThread = &CntThreadProc; /* Address of thread program */ ULONG ulThreadParm = 100; /* Parameter to thread routine */ APIRET rc = NO_ERROR; /* Return code */ rc = DosCreateThread(&tidCntThread, /* Thread ID (returned by function) */ pfnCntThread, /* Address of thread program */ ulThreadParm, /* Parameter passed to ThreadProc */ CREATE_READY | /* Thread is ready when created */ STACK_SPARSE, /* Do not pre-commit stack pages */ 8192L); /* Stack size, rounded to page bdy */ if (rc != NO_ERROR) { printf("DosCreateThread error: return code = %u\n", rc); return 1; } rc = DosSleep (1000); /* Sleep for a second to allow thread to run a bit */ rc = DosSuspendThread (tidCntThread); if (rc != NO_ERROR) { printf("DosSuspendThread error: return code = %u\n", rc); return 1; } rc = DosSleep (5000); /* Sleep 5 seconds before resuming the thread */ rc = DosResumeThread (tidCntThread); if (rc != NO_ERROR) { printf("DosResumeThread error: return code = %u\n", rc); return 1; } rc = DosWaitThread (&tidCntThread, DCWW_WAIT); if (rc != NO_ERROR) { printf ("DosWaitThread error : return code = %u\n", rc); } printf ("Thread has completed!\n"); return NO_ERROR; } void _System CntThreadProc(ULONG LoopMax ) /* Count thread */ { ULONG i = 0; /* Loop index */ for (i=0;i < LoopMax;i++ ) { printf ("%d\n", i); } return; }