diff options
author | Lukas Larsson <[email protected]> | 2016-06-10 09:47:24 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2016-06-10 09:47:24 +0200 |
commit | 7979f72ce15ec5eeb8e0e9cfc1c291f10c4f0432 (patch) | |
tree | 582f90aac92b208b3fbf20c2f50bb588e28a6f53 /erts/emulator/test/port_SUITE_data/sleep_failure_drv.c | |
parent | 77e69343b8bf6de63242cbcea7ebb35be3bb99e9 (diff) | |
parent | 3ee5343415d6ae0ce1ff1c2a2555051431a9315e (diff) | |
download | otp-7979f72ce15ec5eeb8e0e9cfc1c291f10c4f0432.tar.gz otp-7979f72ce15ec5eeb8e0e9cfc1c291f10c4f0432.tar.bz2 otp-7979f72ce15ec5eeb8e0e9cfc1c291f10c4f0432.zip |
Merge branch 'kvakvs/erts/monitor_port/OTP-11384'
* kvakvs/erts/monitor_port/OTP-11384:
erts: Add port monitors
Diffstat (limited to 'erts/emulator/test/port_SUITE_data/sleep_failure_drv.c')
-rw-r--r-- | erts/emulator/test/port_SUITE_data/sleep_failure_drv.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/erts/emulator/test/port_SUITE_data/sleep_failure_drv.c b/erts/emulator/test/port_SUITE_data/sleep_failure_drv.c new file mode 100644 index 0000000000..1f52646572 --- /dev/null +++ b/erts/emulator/test/port_SUITE_data/sleep_failure_drv.c @@ -0,0 +1,76 @@ +#include <stdio.h> +#include "erl_driver.h" +#ifdef __WIN32__ +# include <windows.h> +#else +# include <unistd.h> +#endif + +typedef struct _erl_drv_data FailureDrvData; + +static FailureDrvData *failure_drv_start(ErlDrvPort, char *); +static void failure_drv_stop(FailureDrvData *); +static void failure_drv_output(ErlDrvData, char *, ErlDrvSizeT); +static void failure_drv_finish(void); + +static ErlDrvEntry failure_drv_entry = { + NULL, /* init */ + failure_drv_start, + failure_drv_stop, + failure_drv_output, + NULL, /* ready_input */ + NULL, /* ready_output */ + "sleep_failure_drv", + NULL, /* finish */ + NULL, /* handle */ + NULL, /* control */ + NULL, /* timeout */ + NULL, /* outputv */ + NULL, /* ready_async */ + NULL, + NULL, + NULL, + ERL_DRV_EXTENDED_MARKER, + ERL_DRV_EXTENDED_MAJOR_VERSION, + ERL_DRV_EXTENDED_MINOR_VERSION, + 0, + NULL, + NULL, + NULL, +}; + + + +/* ------------------------------------------------------------------------- +** Entry functions +**/ + +DRIVER_INIT(failure_drv) +{ + return &failure_drv_entry; +} + +static FailureDrvData *failure_drv_start(ErlDrvPort port, char *command) { + void *void_ptr; + + return void_ptr = port; +} + +static void failure_drv_stop(FailureDrvData *data_p) { +} + +static void failure_drv_output(ErlDrvData drv_data, char *buf, ErlDrvSizeT len) { + FailureDrvData *data_p = (FailureDrvData *) drv_data; + void *void_ptr; + ErlDrvPort port = void_ptr = data_p; + +#ifdef __WIN32__ + Sleep(3000); +#else + sleep(3); +#endif + driver_failure(port, 0); +} + +static void failure_drv_finish() { +} |