Require Lwt 2.4.6 as 2.4.7 breaks socketpair
IPC.Marshal.Make for automatic string conversions
Remove remaining Lwt-specific mentions
Regen Oasis stuff once again
Add .mli for Release_async and Release_lwt
Rename lib/core to lib/release
Don't call Pervasives.exit to let async clean up
Call exit on async_exit to work around Lwt hanging
Remove meaningless comments
Use destructive type substitution
Redesign logging interface
Use only formattable log functions; lose _f prefix
Get rid of Future.Main and Future.IO
Future.Main functions (run and at_exit) now live directly inside Future.
Future.IO is just gone.
Handle Unix_error too
Without this, CPU load goes to 100%.
Disable reexecution before signaling slaves
Handle disabled reexecution
Remove exec call from lstat exception block
Remove ununsed functions
Fix signal handlers
Avoid sharing Future resources when forking
Close file descriptors "manually" on Release_async
Async always calls Unix.shutdown when a socket file descriptor is
closed, and we don't want that.
Fix Future.async in Release_async.
Replace mutex with sequencer
Base IPC around the `connection` type
This type consists of a connected unix socket and a lock. The lock
is used when reading an IPC packet, to ensure that the thread which
reads the header and the thread which reads the payload do so
Remove unecessary type alias
Async threads can't be cancelled.
Introduce `with_timeout` to work around that.