pthreads works, sorta

Greg Smith
Tue Jun 26 18:16:00 GMT 2001

More experimenting with my home computer, dual pIII 850:

1. 117  157 328
2. 822 1527 ---
3. 194  240 453
4. 169  181 516

The entries in the array represent the number of seconds it
took to get to a certain milestone in the application.  The
columns, 1 thru 3, are the milestones.  The rows are defined as:

1. linux (however, linux had an advantage, since all the data is
   on the hard drive, and on the windows side some of the data
   had to be contained on cdrom).
2. cygwin current, with the condtimedwait patch
3. cygwin 1.3.2, but with the Pthread-win32 implementation
4. cygwin current, plus using the verifiable_object_isvalid2()
   routine, for the lock/unlock, signal, wait/timedwait calls
   (which doesn't call VirtualQuery()).

There is an additional error in cygwin current, I think related
to pthread_kill, that occurs between milestone 2 and 3, that
possibly skewed the results for row 4.  Milestone 3 is never
reached for row 2 because all processing becomes dedicated to
pthreads overhead and no useful work gets done (ie thrashing).

I think this shows that VirtualQuery *is* a hog.
These results were obtained on Windows2000 sp1 and my previous
results were on NT4 sp6 (on a pIII 650).

Thanks, Greg

Unsubscribe info:
Bug reporting:

More information about the Cygwin mailing list