diff options
author | Lukas Larsson <[email protected]> | 2014-03-23 22:21:38 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2014-03-26 15:18:59 +0100 |
commit | 38db84be84daefe80806e6a4c06d3ed8c6c8db31 (patch) | |
tree | d0946927122f8bc6de6c8b3f2745721027a984da /erts/emulator/sys/ose/erl_poll.c | |
parent | 68c1740b8b2a23ea8caf46b024fc339e10f375f0 (diff) | |
download | otp-38db84be84daefe80806e6a4c06d3ed8c6c8db31.tar.gz otp-38db84be84daefe80806e6a4c06d3ed8c6c8db31.tar.bz2 otp-38db84be84daefe80806e6a4c06d3ed8c6c8db31.zip |
ose: Implement tcp inet driver for OSE
The inet driver for OSE has to handle signals instead of selects
and thus the wrappers for ready_input/output are a little bit
different. However the majority of the inet code remains the same.
Diffstat (limited to 'erts/emulator/sys/ose/erl_poll.c')
-rw-r--r-- | erts/emulator/sys/ose/erl_poll.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/emulator/sys/ose/erl_poll.c b/erts/emulator/sys/ose/erl_poll.c index f0a9097252..7d2a3d1e0b 100644 --- a/erts/emulator/sys/ose/erl_poll.c +++ b/erts/emulator/sys/ose/erl_poll.c @@ -551,7 +551,12 @@ int erts_poll_wait(ErtsPollSet ps, fd.id, fd.signo, current_process()); erts_send_error_to_logger_nogl(dsbufp); timeout = 0; - ASSERT(0); + /* Under normal circumstances the signal is deallocated by the + * driver that issued the select operation. But in this case + * there's no driver waiting for such signal so we have to + * deallocate it here */ + if (sig) + free_buf(&sig); } else { int i; struct erts_sys_fd_type *fd = NULL; |