Comment 4 for bug 1760827

Revision history for this message
Douglas Katzman (dougk) wrote :

I'm in favor of adding new interfaces and deprecating the old if we can clean things up.
To me that would mean eradicating any interaction with *DEADLINE* which is not a thing in the POSIX model, removing the distinction between ':waitp nil' and ':timeout 0' in grab-mutex, and removing the NOTIFICATION thing from every semaphore operation that currently accepts it.
(And maybe some other things I didn't mention)
The result would be a leaner synchronization API patterned on just the underlying layer (POSIX sync primitives) even though completely reimplemented in Lisp. And it would reconcile the programming model with other languages that don't have any of this old baggage and seem to do just fine. I would mildly oppose doing only a subset of those changes because then we'd be halfway between a crufty design and a clean design, which is even worse than just having 1 design.

That said, I think the documentation is not _requiring_ that you not decrement the timeout. I'm not sure why users perceive that it says that. It's saying "here is a usage pattern". ymmv.