diff options
author | Damien F. Katz <damien@apache.org> | 2008-08-20 20:08:05 +0000 |
---|---|---|
committer | Damien F. Katz <damien@apache.org> | 2008-08-20 20:08:05 +0000 |
commit | 99d95ef4e476a0bf8387c1ca02c066387c1040fd (patch) | |
tree | deab249f1a77d4360ab18ad4020b25cadd7fd474 | |
parent | 83af9a01292b5324de651ed90199f61be8d9eae7 (diff) |
Fix for possible multi-threading bottleneck in ICU driver.
git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@687438 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/couchdb/couch_erl_driver.c | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/couchdb/couch_erl_driver.c b/src/couchdb/couch_erl_driver.c index c6541eaa..0dbedc8d 100644 --- a/src/couchdb/couch_erl_driver.c +++ b/src/couchdb/couch_erl_driver.c @@ -144,18 +144,28 @@ static int couch_drv_control(ErlDrvData drv_data, unsigned int command, const ch } ErlDrvEntry couch_driver_entry = { - NULL, /* F_PTR init, N/A */ - couch_drv_start, /* L_PTR start, called when port is opened */ - couch_drv_stop, /* F_PTR stop, called when port is closed */ - NULL, /* F_PTR output, called when erlang has sent */ - NULL, /* F_PTR ready_input, called when input descriptor ready */ - NULL, /* F_PTR ready_output, called when output descriptor ready */ - "couch_erl_driver", /* char *driver_name, the argument to open_port */ - NULL, /* F_PTR finish, called when unloaded */ - NULL, /* Not used */ - couch_drv_control, /* F_PTR control, port_command callback */ - NULL, /* F_PTR timeout, reserved */ - NULL /* F_PTR outputv, reserved */ + NULL, /* F_PTR init, N/A */ + couch_drv_start, /* L_PTR start, called when port is opened */ + couch_drv_stop, /* F_PTR stop, called when port is closed */ + NULL, /* F_PTR output, called when erlang has sent */ + NULL, /* F_PTR ready_input, called when input descriptor ready */ + NULL, /* F_PTR ready_output, called when output descriptor ready */ + "couch_erl_driver", /* char *driver_name, the argument to open_port */ + NULL, /* F_PTR finish, called when unloaded */ + NULL, /* Not used */ + couch_drv_control, /* F_PTR control, port_command callback */ + NULL, /* F_PTR timeout, reserved */ + NULL, /* F_PTR outputv, reserved */ + NULL, /* F_PTR ready_async */ + NULL, /* F_PTR flush */ + NULL, /* F_PTR call */ + NULL, /* F_PTR event */ + ERL_DRV_EXTENDED_MARKER, + ERL_DRV_EXTENDED_MAJOR_VERSION, + ERL_DRV_EXTENDED_MINOR_VERSION, + ERL_DRV_FLAG_USE_PORT_LOCKING, + NULL, /* Reserved -- Used by emulator internally */ + NULL, /* F_PTR process_exit */ }; DRIVER_INIT(couch_erl_driver) /* must match name in driver_entry */ |