On Aug 20, 2008, at 22:08, [EMAIL PROTECTED] wrote:
Author: damien
Date: Wed Aug 20 13:08:05 2008
New Revision: 687438
URL: http://svn.apache.org/viewvc?rev=687438&view=rev
Log:
Fix for possible multi-threading bottleneck in ICU driver.
Damien, you mentioned on IRC that ICU is thread safe. I'm
just doing an installation of CouchDB and all the dependencies
on FreeBSD and the FreeBSD port of ICU gives me the option
to build a non-thread-safe version of ICU. Is this something we
have to worry about? Should our build system try and detect
a not-thread-safe ICU installation to avoid nasty problems?
Cheers
Jan
--
Modified:
incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c
Modified: incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c
URL:
http://svn.apache.org/viewvc/incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c?rev=687438&r1=687437&r2=687438&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c (original)
+++ incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c Wed Aug
20 13:08:05 2008
@@ -144,18 +144,28 @@
}
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 */