Closed Bug 574695 Opened 14 years ago Closed 14 years ago

pthread-like condition variables for WinCE

Categories

(Tamarin Graveyard :: Virtual Machine, defect, P3)

All
Windows CE
defect

Tracking

(Not tracked)

VERIFIED WONTFIX
Q3 11 - Serrano

People

(Reporter: siwilkin, Unassigned)

References

Details

Attachments

(1 file, 3 obsolete files)

Emulation of condition variables for WinCE's restricted Win32 API.

This implementation is mostly from http://www.cs.wustl.edu/~schmidt/win32-cv-1.html

See the copyright/licensing headers within the files, and also the license approval from Mozilla via bug 563972

The implementation is sub-optimal, however, it works with CE.


(Filed under 'Virtual Machine', is there a better category?)
See Also: → 563972
Blocks: 555760
Attachment #454052 - Attachment is obsolete: true
Comment on attachment 454053 [details] [diff] [review]
Initial patch inc. copyright/licensing headers

Some minor tab/spacing issues.

The license must be run by Jen Chang or Scott Unterberg for approval, I expect - the sooner the better presumably.
Attachment #454053 - Attachment description: Initial patch inc. copyright/licensing headers → Initial patch inc. copyright/licensing headers
Depends on: 563972
Priority: -- → P3
Target Milestone: --- → flash10.2
Attached patch Cleaned up tabs and spaces (obsolete) — Splinter Review
Cleaned up tabs and spaces.
(The code had a mix of house styles: player and original author)
Attachment #454053 - Attachment is obsolete: true
(In reply to comment #2)
> The license must be run by Jen Chang or Scott Unterberg for approval, I expect
> - the sooner the better presumably.

Scott Unterberg thinks it's good to go.

The requirement is that it is easily findable during their AIPAS audit (prior to the next release) to verify it is under Mozilla's license.
Attachment #471587 - Flags: review?(edwsmith)
Attachment #471587 - Flags: feedback?(lhansen)
Comment on attachment 471587 [details] [diff] [review]
Cleaned up tabs and spaces

If this comment is a 'fixme someday', then we should enter a bug with idea, and reference it in the comment:

  ... Note: The implementation is sub-optimal in many respects, however it works with CE. 

Otherwise some hints as to what is suboptimal might be nice.  Nothing else obviously wrong, but its the kind of code that needs good testing to be confident in it.
Attachment #471587 - Flags: review?(edwsmith) → review+
Added some notes (mostly links to other people's analyses) on the issues with this implementation.

They go much deeper than I did when inspecting this code; it is actually a little scary. For this initial implementation, we can live with performance problems, but potential correctness issues?

The problems discussed are non-trivial: spurious wakeups, lost signals, broadcast deadlock and unfairness.

Why is this used in the player?


See ftp://sourceware.org/pub/pthreads-win32/sources/pthreads-w32-2-8-0-release/README.CV

The above pthreads-win32 discussion led to the development of Alexander Terekhov's 8a algorithm, which is now used by Boost and pthreads-win32. We should *seriously* consider moving to this algorithm in the future (not just for WinCE, but for all Win32 platforms that need CV emulation). I already mentioned this in my original comments on bug 555760, but this was purely for performance considerations.
Attachment #471587 - Attachment is obsolete: true
Attachment #471587 - Flags: feedback?(lhansen)
I don't believe the current Win32 solution shares the problems discussed here (except, perhaps, fairness). Well, plus not working on CE.

But it's hard to argue against adopting a tried-and-true solution. In fact it seems like an excellent idea.
Based on hallway conversations with Simon and Stan, it sounds like this bug is WONTFIX.  If you concur, mark it so.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
If this ever gets re-opened, or is looked at as part of some other CV for WinMo effort, then just go straight to Alexander Terekhov's 8a algorithm.
bulk verifying resolved !fixed issues
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: