Working further on the userspace implementation locks, I realized that it
is hard to come up with an implementation that is both fast and fair,
understanding by the last concept the fact that all threads have more or
less the same chances to acquire a lock. POSIX threads seem to acomplish
this nicely, at least on OS X, but they can afford some collaboration with
the OS scheduler that we do not have.
So far the trick that works best at this seems to be a trivial change:
before acquiring a lock, verify whether the lock wait queue is empty or
not. If it is not empty, queue its own process and wait. This has the
disadvantage that a thread that might be ready might not end up using the
resource which is locked.
So my question is to what extend is fairness something that has to be
implemented by the operating system or by the user him/herself? Is it
something that has to be contemplated at the application level?
Juanjo
--
Instituto de FĂsica Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list