Пример #1
0
TASK_DLLEXPORT TaskMessage *
Task_peekMessage(void)
{
   pth_t ptask;

   Task *task;

   pth_msgport_t selfPort = NULL;

   char msgPortName[10];

#ifdef _LDEBUG
   printf("F=%s,L=%d\n", __FILE__, __LINE__);
#endif
   if (!pth_inited)
      return NULL;
   ptask = pth_self();
   task = seach_task_in_list(&Tasks, ptask);
   if (task == NULL)
      return NULL;
   snprintf(msgPortName, 10, "%ld", task->id);
   selfPort = pth_msgport_find(msgPortName);
   if (selfPort == NULL)
      return NULL;
   if (pth_msgport_pending(selfPort))
      return Task_getMessage();

   Task_yield();
#ifdef _LDEBUG
   printf("F=%s,L=%d\n", __FILE__, __LINE__);
#endif
   return NULL;
}
Пример #2
0
static int
tid_log_callback (unsigned long *rvalue)
{
#ifdef PTH_HAVE_PTH_THREAD_ID
  *rvalue = pth_thread_id ();
#else
  *rvalue =  (unsigned long)pth_self ();
#endif
  return 2; /* Use use hex representation.  */
}
Пример #3
0
/* Obtain the current thread id */
TSRM_API THREAD_T tsrm_thread_id(void)
{/*{{{*/
#ifdef TSRM_WIN32
	return GetCurrentThreadId();
#elif defined(GNUPTH)
	return pth_self();
#elif defined(PTHREADS)
	return pthread_self();
#elif defined(TSRM_ST)
	return st_thread_self();
#endif
}/*}}}*/
Пример #4
0
/* Obtain the current thread id */
TSRM_API THREAD_T tsrm_thread_id(void)
{
#ifdef TSRM_WIN32
	return GetCurrentThreadId();
#elif defined(GNUPTH)
	return pth_self();
#elif defined(PTHREADS)
	return pthread_self();
#elif defined(NSAPI)
	return systhread_current();
#elif defined(PI3WEB)
	return PIThread_getCurrent();
#elif defined(TSRM_ST)
	return st_thread_self();
#elif defined(BETHREADS)
	return find_thread(NULL);
#endif
}
Пример #5
0
TASK_DLLEXPORT void
Task_STOP()
{
#ifdef _LDEBUG
   printf("F=%s,L=%d\n", __FILE__, __LINE__);
#endif
   if (!stopcount)
   {
      if (pth_inited)
      {
	 pth_t ptask;

	 ptask = pth_self();
	 task_pth_stop(&Tasks, ptask);
      }
      Task_stop_sheduler();
   }

   ++stopcount;
#ifdef _LDEBUG
   printf("F=%s,L=%d\n", __FILE__, __LINE__);
#endif
}
Пример #6
0
/* WARNING:  This may not work for systems with 64-bit pid_t */
Uint32 SDL_ThreadID(void)
{
	return((Uint32)pth_self());
}
Пример #7
0
ldap_pvt_thread_t
ldap_pvt_thread_self( void )
{
	return pth_self();
}
Пример #8
0
task_pid_t task_getpid (void)
{
	return pth_self ();
}
Пример #9
0
bool Thread::isRunning ()
{
    return tid == pth_self();
}
Пример #10
0
static int fixed_gcry_pth_init (void)
{
  return pth_self ()? 0 : (pth_init () == FALSE) ? errno : 0;
}
Пример #11
0
uintptr_t
ath_self (void)
{
  return (uintptr_t) pth_self ();
}
Пример #12
0
FrSimThread* FrSimThread::getSelf() {
  //  std::cout << "FrSimThread::getSelf" << std::endl;
  selfId.id = pth_self();
  return FrSimThreadTracker::getThreadTracker()->getThread(&selfId);
}