threads question

Daniel Eischen deischen at freebsd.org
Mon Mar 14 20:57:31 PST 2005


On Mon, 14 Mar 2005, Michael C. Shultz wrote:

> Hi, I've just reached a point in a program I'm writing where I'd like to
> do threading.
>
> When I try to start a thread like this:
>
> pthread_create(&thread, &attr, MGPMrUpgrade, property );
                                               ^^^^^^^^  &property

You should compile with -Wall and get rid of any warnings.

> where property is a structure of many variables it doesn't get passed
> to the function.  If I do this:
>
> pthread_create(&thread, &attr, MGPMrUpgrade( &property ), NULL );

That looks like it will actuall call MGPMrUpgrade() and use its
return value as the function pointer.

> It works, but just seems wrong.
>
> Can anyone point me to a source file, preferably in /usr/src somewhere
> that passes a structure to a function being run as a thread so I may
> study the proper way to do this?

  src/lib/libpthread/test/sem_d.c
  src/lib/libpthread/test/mutex_d.c
  src/lib/libpthread/test/sigwait_d.c

I'd suggest getting Butenhof's "Programming with POSIX Threads" book.

-- 
DE



More information about the freebsd-hackers mailing list