#include "SurcoucheMultitache.h"
Aller au code source de ce fichier.
Fonctions | |
| int | ThreadStart (THREAD *pThread, ROUTINE Process, PARAMETRE Param) |
| Demare un thread. | |
| void | ThreadStop (THREAD *pThread) |
| Stop un thread. | |
| void | ThreadExit (int ExitCode) |
| Sortie d'un thread. | |
| void | ThreadWait (THREAD *pThread) |
| Attent un thread. | |
| unsigned int | ThreadId () |
| Retourne l'id du thread. | |
| void | MutexInit (MUTEX *pMutex) |
| Initialise un mutex. | |
| void | MutexLock (MUTEX *pMutex) |
| Attent un mutex. | |
| void | MutexUnLock (MUTEX *pMutex) |
| Libere un mutex. | |
| void | MutexStop (MUTEX *pMutex) |
| Stop un mutex. | |
Définition dans le fichier SurcoucheMultitache.cpp.
|
|
Initialise un verou de syncronisation de tache
Définition à la ligne 78 du fichier SurcoucheMultitache.cpp. Références MUTEX. Référencé par DataBase::DataBase(), DataBaseTable::DataBaseTable(), Ini::Ini(), ModuleDynamique::ModuleDynamique(), MutexLock(), et MySQL::MySQL(). 00079 {
00080 #ifdef WIN32
00081 *pMutex = (MUTEX)CreateMutex(NULL, FALSE, NULL);
00082 #else
00083 pthread_mutex_init((MUTEX *)pMutex, NULL);
00084 #endif
00085 }
|
|
|
Pause la tache en cour en attente du déverouillage du mutex et va le verouillé.
Définition à la ligne 87 du fichier SurcoucheMultitache.cpp. Références MUTEX, et MutexInit(). Référencé par Ini::Load(), ModuleDynamique::LoadModules(), Ini::Save(), DataBase::SaveBase(), DataBaseTable::SaveEntrys(), et ModuleDynamique::UnLoadModules(). 00088 {
00089 if(!pMutex)
00090 MutexInit(pMutex);
00091
00092 #ifdef WIN32
00093 WaitForSingleObject((MUTEX)pMutex, INFINITE);
00094 #else
00095 pthread_mutex_lock((MUTEX *)pMutex);
00096 #endif
00097 }
|
|
|
Déverouille et détrui un mutex.
Définition à la ligne 108 du fichier SurcoucheMultitache.cpp. Références MUTEX. Référencé par DataBase::~DataBase(), DataBaseTable::~DataBaseTable(), Ini::~Ini(), ModuleDynamique::~ModuleDynamique(), et MySQL::~MySQL(). 00109 {
00110 #ifdef WIN32
00111 ReleaseMutex((MUTEX)pMutex);
00112 CloseHandle((MUTEX)pMutex);
00113 *pMutex = NULL;
00114 #else
00115 pthread_mutex_destroy((MUTEX *)pMutex);
00116 pMutex = NULL;
00117 #endif
00118 }
|
|
|
Déverouille le mutex préalablement réservé.
Définition à la ligne 99 du fichier SurcoucheMultitache.cpp. Références MUTEX. Référencé par Ini::Load(), ModuleDynamique::LoadModules(), Ini::Save(), DataBase::SaveBase(), DataBaseTable::SaveEntrys(), et ModuleDynamique::UnLoadModules(). 00100 {
00101 #ifdef WIN32
00102 ReleaseMutex((MUTEX)pMutex);
00103 #else
00104 pthread_mutex_unlock((MUTEX *)pMutex);
00105 #endif
00106 }
|
|
|
Sortie propre d'une tache et renvoie iExitCode au systeme.
Définition à la ligne 46 du fichier SurcoucheMultitache.cpp. Référencé par NetServer::GarbageClient(), et NetServer::WaitClient(). 00047 {
00048 #ifdef WIN32
00049 ExitThread(ExitCode);
00050 #else
00051 pthread_exit((void *)&ExitCode);
00052 #endif
00053 }
|
|
|
Retourne l'id du thread qui éxécute la fonction. Définition à la ligne 66 du fichier SurcoucheMultitache.cpp. Référencé par Error::Error(), et ThreadCallStack::ThreadCallStack(). 00067 {
00068 #ifdef WIN32
00069 return GetCurrentThreadId();
00070 #else
00071 unsigned int id = 0;
00072
00073 memcpy(&id, (void*)(pthread_self() + 72), sizeof(pid_t));
00074 return id - 1;
00075 #endif
00076 }
|
|
||||||||||||||||
|
Demare une tache Process avec un parametre Param.
Définition à la ligne 14 du fichier SurcoucheMultitache.cpp. Références PARAMETRE, ROUTINE, et THREAD. Référencé par NetServer::Start(), et NetServer::WaitClient(). 00015 {
00016 #ifdef WIN32
00017 *pThread = (THREAD)CreateThread(NULL, 0, (ROUTINE)Process, (PARAMETRE)Param, 0, NULL);
00018 if(pThread == INVALID_HANDLE_VALUE)
00019 return 1;
00020 #else
00021 pthread_attr_t Type;
00022
00023 if(pthread_attr_init(&Type))
00024 return(1);
00025
00026 pthread_attr_setdetachstate(&Type, PTHREAD_CREATE_JOINABLE);
00027
00028 if(pthread_create((THREAD *)pThread, &Type, (ROUTINE)Process, (PARAMETRE)Param))
00029 return 1;
00030 #endif
00031
00032 return 0;
00033 }
|
|
|
Force la fermeture d'une tache.
Définition à la ligne 35 du fichier SurcoucheMultitache.cpp. Références THREAD. 00036 {
00037 #ifdef WIN32
00038 TerminateThread((THREAD)pThread, FALSE);
00039 CloseHandle((THREAD)pThread);
00040 #else
00041 pthread_cancel((THREAD)pThread);
00042 #endif
00043 *pThread = 0;
00044 }
|
|
|
Pause la tache en cour en attente de la fin de la tache donnée.
Définition à la ligne 55 du fichier SurcoucheMultitache.cpp. Références THREAD. Référencé par NetServer::GarbageClient(), et NetServer::Stop(). 00056 {
00057 #ifdef WIN32
00058 WaitForSingleObject((THREAD)pThread, INFINITE);
00059 CloseHandle((THREAD)pThread);
00060 #else
00061 pthread_join((THREAD)*pThread, NULL);
00062 #endif
00063 pThread = NULL;
00064 }
|
1.3.9.1