![]() |
|
|
|
|
|||||||
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| create function with awk | kamel.seg | Shell Programming and Scripting | 2 | 12-24-2007 01:36 PM |
| How to create SQRT function in catenate file | ahjiefreak | Shell Programming and Scripting | 7 | 12-10-2007 08:31 AM |
| string returning function | jisc | High Level Programming | 5 | 03-23-2006 06:35 AM |
| How to cancel a thread safely from the initial thread? | alan.zhao | High Level Programming | 1 | 04-29-2005 07:07 AM |
| create thread C with JNI function with JAVA | AUBERT | HP-UX | 0 | 08-06-2004 02:24 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
create a thread from a returning function
hi all,
my requirement is to create a thread by calling another function. i.e i dont call pthread_create directly from main, but by calling another function (createThd - below ), from main. Example: [code] void *thread_function(void *arg) { /* thread function */ int i; rc = pthread_detach(pthread_self()); for ( ; ; ) { printf("Thread says hi!\n"); sleep(1); } pthread_exit(NULL); } int main(void) { int i; i = createThd(); /* call to thread creating function */ return (0); } int createThd() { int rc = 0; pthread_t mythread; if ( pthread_create( &mythread, NULL, thread_function, NULL) ) { printf("error creating thread."); return(-1); } return 0; } [\CODE] this creates the thread but doesnt run it, thread terminates as soon as the function createThd() returns. is there a way to overcome this problem. any help is appreciated, thankx in advanced. wolwy. |
| Forum Sponsor | ||
|
|
|
|||
|
The reason this is not working is that your main function doesn't have an event loop and/or doesn't block on the created thread.
An easy way out is to return the created thread tid, do not detach, and call pthread_join in main. HTH. |
| Thread Tools | |
| Display Modes | |
|
|
|
The 50 most popular UNIX and Linux searches.
Google Search Cloud for The UNIX and Linux Forums
|
| "inappropriate ioctl for device" 421 service not available, remote server has closed connection ^m arg list too long ascii eof autosys awk trim bash eval bash exec bash for loop boot: cannot open kernel/sparcv9/unix close_wait command copy/move folder in unix curses.h dead.letter export display find grep grep multiple lines grep or grep recursive grep unique inappropriate ioctl for device logrotate.conf lynx javascript mailx attachment mget mtime perl array length ping port read awk output into multiple variables replace space by comma , perl script scp recursive segmentation fault(coredump) sftp script snoop unix stale nfs file handle syn_sent tar exclude unix unix .profile unix com unix forum unix forums unix interview questions unix memory usage unix mtime unix simulator unix.com vi tab size while loop within while loop shell script |