libcw/cwThread.h

31 lines
769 B
C
Raw Normal View History

2019-12-19 03:24:12 +00:00
#ifndef cwThread_H
#define cwThread_H
namespace cw
{
typedef enum
{
kNotInitThId,
kPausedThId,
kRunningThId,
kExitedThId
} kThreadStateId_t;
typedef handle<struct thread_str> threadH_t;
typedef bool (*threadFunc_t)( void* arg );
// stateMicros = time out duration for switching in/out of pause or in to exit
// pauseMicros = duration of thread sleep interval when in paused state.
rc_t threadCreate( threadH_t& hRef, threadFunc_t func, void* funcArg, int stateTimeOutMicros=100000, int pauseMicros=10000 );
rc_t threadDestroy( threadH_t& hRef );
enum { kThreadPauseFl=0x01, kThreadWaitFl=0x02 };
rc_t threadPause( threadH_t& h, unsigned cmdFlags );
kThreadStateId_t threadState( threadH_t h );
rc_t threadTest();
}
#endif