man pthread_create () - create a thread
NAME
pthread_create - create a thread
SYNOPSIS
#include <rtl_sched.h> int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
DESCRIPTION
This function is an RTLinux version of standard POSIX threads function. pthread_create creates a realtime thread that will have attributes given by attr, and that begins executing function start_routine(arg ). If the attribute is NULL, default attributes are used. The thread attributes in RTLinux are extended to allow thread creation on specific processors (pthread_attr_setcpu_np), to enable FPU operations in the created thread (pthread_attr_setfp_np).
The standard thread attribute setting functions supported include pthread_attr_setschedparam, pthread_attr_setdetachstate, pthread_attr_setstacksize, pthread_attr_setstackaddr. The last call is to allow users to allocate memory for thread stacks -- so that threads can be created in RT operating mode by making use of pre-allocated memory. pthread_join should be used to synchronize freeing of thread resources including memory. For example if a thread is created with user allocated stack via pthread_attr_setstackaddr, that memory can only be safely reallocated after a pthread_join.
RETURN VALUE
pthread_create returns 0 on success and a non-zero error code on error.
ERRORS
- [EAGAIN]
- Either not enough memory, or PTHREAD_THREADS_MAX would be exceeded, or pthread_create is called from RT-thread context and preallocated stack use is not specified.
- [EINVAL]
- Bad attributes.
AUTHOR
Victor Yodaiken (support@fsmlabs.com (link to URL mailto:support@fsmlabs.com) )
NOTES
In the absense of preallocated stack (via pthread_attr_setstackaddr), the use of this function is restricted to the Linux init_module() or cleanup_module() context.
SEE ALSO
UNIX spec pthread_create(3) (link to URL ../susv2/xsh/pthread_create.html) , pthread_attr_setstackaddr(3) (link to URL ../susv2/xsh/pthread_attr_getstackaddr.html) , pthread_attr_setstacksize(3) (link to URL ../susv2/xsh/pthread_attr_getstacksize.html) , pthread_join(3) (link to URL pthread_join.3.html) , pthread_make_periodic_np(3) (link to URL pthread_make_periodic_np.3.html) , pthread_attr_setcpu_np(3) (link to URL pthread_attr_setcpu_np.3.html) , pthread_attr_getcpu_np(3) (link to URL pthread_attr_getcpu_np.3.html) , pthread_attr_setfp_np(3) (link to URL pthread_attr_setfp_np.3.html)
©2001 FSMLabs Inc.
All rights reserved.