Improve synchronization

- Fix bugs in kDos2Errno definition
- malloc() should now be thread safe
- Fix bug in rollup.com header generator
- Fix open(O_APPEND) on the New Technology
- Fix select() on the New Technology and test it
- Work towards refactoring i/o for thread safety
- Socket reads and writes on NT now poll for signals
- Work towards i/o completion ports on the New Technology
- Make read() and write() intermittently check for signals
- Blinkenlights keyboard i/o so much better on NT w/ poll()
- You can now poll() files and sockets at the same time on NT
- Fix bug in appendr() that manifests with dlmalloc footers off
This commit is contained in:
Justine Tunney 2022-04-14 23:39:48 -07:00
parent 233144b19d
commit 933411ba99
266 changed files with 8761 additions and 4344 deletions

View file

@ -1,21 +1,13 @@
ORIGIN
DESCRIPTION
http://gee.cs.oswego.edu/
malloc-2.8.6
written by Doug Lea
LICENSE
http://creativecommons.org/publicdomain/zero/1.0/
LOCAL CHANGES
Numerous local changes were made while vendoring Doug Lee's original
dlmalloc sources. Those changes basically boil down to:
1. Fewer #ifdefs
2. More modules (so linker can do a better job)
3. Delete code we don't need (cf. Knight Capital)
4. Readability / stylistic consistency
Since we haven't made any genuine improvements to Doug Lee's legendary
allocator, we feel this folder faithfully presents his intended work, in
harmony with Cosmopolitan conventions.
The only deleted code we're sure has compelling merit is the mspace
functionality. If we ever need memory pools, they might be more
appropriately vendored under //third_party/dlmalloc_mspace.
- Introduce __oom_hook()
- Favor pause (rather than sched_yield) for spin locks