📄 systhr.h
字号:
/* * systhr.h,v 1.3 2000/06/04 22:00:03 brunsch Exp * * Copyright (c) 1994, 1995. Netscape Communications Corporation. All * rights reserved. * * Use of this software is governed by the terms of the license agreement for * the Netscape Communications or Netscape Comemrce Server between the * parties. *//* ------------------------------------------------------------------------ *//* * systhr.h: Abstracted threading mechanisms * * Rob McCool */#ifndef _SYSTHR_H#define _SYSTHR_H#include "netsite.h"#include "systems.h"#ifdef THREAD_ANY#ifdef USE_NSPR#include <nspr/prthread.h>#include <nspr/prglobal.h>typedef PRThread* SYS_THREAD;#endif#ifdef THREAD_WIN32#include <nspr/prthread.h>#include <nspr/prglobal.h>#include <process.h>typedef struct { HANDLE hand; DWORD id;} sys_thread_s;typedef sys_thread_s *SYS_THREAD;#endif/* * systhread_start creates a thread with the given priority, will allocate * a stack of stksz bytes, and calls fn with arg as its argument. stksz * of zero will allocate a default stack size. * * XXX Priorities are system dependent */SYS_THREAD systhread_start(int prio, int stksz, void (*fn)(void *), void *arg);/* * systhread_current returns a pointer to the current thread. */#ifdef USE_NSPR#define systhread_current() PR_CurrentThread()#elif defined(THREAD_WIN32)#define systhread_current() GetCurrentThreadId()#endif/* * systhread_attach makes an existing thread an NSPR thread. Currently this * is used only in NT. */SYS_THREAD systhread_attach();/* * systhread_terminate terminates the thread that is passed in. */void systhread_terminate(SYS_THREAD thr);/* * systhread_sleep puts the calling thread to sleep for the given number * of milliseconds. */void systhread_sleep(int milliseconds);/* * systhread_init initializes the threading system. name is a name for the * program for debugging. */void systhread_init(char *name);/* * systhread_timerset starts or re-sets the interrupt timer for a thread * system. This should be considered a suggestion as most systems don't allow * the timer interval to be changed. */#ifdef THREAD_NSPR_USER#define systhread_timerset(usec) PR_StartEvents(usec)#elif defined(USE_NSPR)#define systhread_timerset(usec) (void)(usec)#elif defined(THREAD_WIN32)#define systhread_timerset(usec) (void)(usec)#endif/* * newkey allocates a new integer id for thread-private data. Use this * key to identify a variable which you want to appear differently * between threads, and then use setdata to associate a value with this * key for each thread. */int systhread_newkey(void);/* * Get data that has been previously associated with key in this thread. * Returns NULL if setkey has not been called with this key by this * thread previously, or the data that was previously used with setkey * by this thread with this key. */void *systhread_getdata(int key);/* * Associate data with the given key number in this thread. */void systhread_setdata(int key, void *data);#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -