/*-------------------------------------------------------------*/ typedef struct netwib_thread netwib_thread; /*-------------------------------------------------------------*/ /* thread ends when this function returns */ typedef netwib_err (*netwib_thread_pf)(netwib_ptr infosin, netwib_ptr *pinfosout); /*-------------------------------------------------------------*/ /* Name : netwib_thread_init Description : Create a new thread, which will execute *pfunc and exit. Input parameter(s) : *pfunc : function executed by the new thread : infosin : set with infosin pinfosout : eventually set by user infosin : data to pass to the thread Input/output parameter(s) : Output parameter(s) : **ppthread : thread created Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_thread_init(netwib_thread_pf pfunc, netwib_ptr infosin, netwib_thread **ppthread); /*-------------------------------------------------------------*/ /* Name : netwib_thread_close Description : Free memory allocated by a netwib_thread. Note : this function does not terminate the thread. function netwib_thread_wait must be called before Input parameter(s) : Input/output parameter(s) : **ppthread : thread to free Output parameter(s) : Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_thread_close(netwib_thread **ppthead); /*-------------------------------------------------------------*/ /* Name : netwib_thread_wait Description : Wait for the end of the thread. Input parameter(s) : *pthread : thread to wait for *pabstime : end time. If *pabstime is reached, function returns (*pevent set to NETWIB_FALSE). Input/output parameter(s) : Output parameter(s) : *pevent : true if thread ended *preturnederror : value returned by the thread *pinfosout : info eventually set by thread Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_thread_wait(netwib_thread *pthread, netwib_consttime *pabstime, netwib_bool *pevent, netwib_err *preturnederror, netwib_ptr *pinfosout);