incubator-couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damien Katz <dam...@apache.org>
Subject Re: svn commit: r687438 - /incubator/couchdb/trunk/src/couchdb/couch_erl_driver.c
Date Thu, 21 Aug 2008 12:45:20 GMT
I don't think it matters since we only collate, no modifying anything  
in mem, so it is unlikely we need a threadsafe version.

-Damien

On Aug 21, 2008, at 5:57 AM, Jan Lehnardt wrote:

>
> On Aug 20, 2008, at 22:08, damien@apache.org 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 */
>>
>>
>>
>


Mime
View raw message