[Ndn-lib] is jNDN thread-safe

Teng Liang philoliang at email.arizona.edu
Tue Jun 13 11:07:19 PDT 2017


Hi Jeff,

Thanks! The ThreadPoolFace is exactly what I am looking for.

Best,
Teng

On 6/13/17 9:38 AM, Thompson, Jeff wrote:
> Hi Teng,
>
> > Is there an example of using ThreadPoolFace in a producer 
> application that doesn't need to call processEvents?
>
> I added the example TestPublishAsyncNfdThreadPool.
> https://github.com/named-data/jndn/blob/master/examples/src/net/named_data/jndn/tests/TestPublishAsyncNfdThreadPool.java 
>
>
> Thanks,
> - Jeff T
>
> From: Teng Liang <philoliang at email.arizona.edu 
> <mailto:philoliang at email.arizona.edu>>
> Date: Thursday, June 8, 2017 at 17:27:00
> To: Jeff Thompson <jefft0 at remap.ucla.edu 
> <mailto:jefft0 at remap.ucla.edu>>, NDN Lib <ndn-lib at lists.cs.ucla.edu 
> <mailto:ndn-lib at lists.cs.ucla.edu>>
> Subject: Re: [Ndn-lib] is jNDN thread-safe
>
> Btw, is there an example of using ThreadPoolFace in a producer 
> application that doesn't need to call processEvents?
>
> Teng
>
> On 6/8/17 3:35 PM, Teng Liang wrote:
>>
>> Hi Jeff,
>>
>> The current implementation is not on Android, but we do plan to 
>> deploy it on Android later.
>>
>> In my scenario, each node is running an NFD with an NDN consumer and 
>> producer. Can they use the same face to communicate with the local 
>> NFD? If they are using two different faces, the local producer can 
>> answer the Interest from the local consumer, which affects the 
>> design. For the implementation, I try to run the consumer and 
>> producer on different threads in the same class.
>>
>> Thanks!
>> Teng
>>
>>
>> On 6/7/17 11:31 PM, Thompson, Jeff wrote:
>>> .. I should ask? Are you using jNDN on Android or not?
>>>
>>> From: Jeff Thompson <jefft0 at remap.ucla.edu 
>>> <mailto:jefft0 at remap.ucla.edu>>
>>> Date: Wednesday, June 7, 2017 at 23:30:00
>>> To: Teng Liang <philoliang at email.arizona.edu 
>>> <mailto:philoliang at email.arizona.edu>>, NDN Lib 
>>> <ndn-lib at lists.cs.ucla.edu <mailto:ndn-lib at lists.cs.ucla.edu>>
>>> Subject: Re: [Ndn-lib] is jNDN thread-safe
>>>
>>> Hi Teng,
>>>
>>> There are two ways to handle thread safety:
>>>
>>> If you are using the Face class, then your application must call 
>>> processEvents in the same thread as it calls expressInterest. Some 
>>> more details are here:
>>> https://github.com/named-data/jndn/blob/master/src/net/named_data/jndn/Face.java#L1349 
>>>
>>>
>>> Or you can use ThreadPoolFace 
>>> <https://github.com/named-data/jndn/blob/master/src/net/named_data/jndn/ThreadPoolFace.java> 
>>> which automatically submits calls to expressInterest to the thread 
>>> pool, and wraps callbacks (like onData) so that they are thread 
>>> safe. Also, ThreadPoolFace can use AsyncTcpTransport 
>>> <https://github.com/named-data/jndn/blob/master/src/net/named_data/jndn/transport/AsyncTcpTransport.java> 
>>> with the same thread pool so that your application doesn’t need to 
>>> call processEvents at all. See the example application 
>>> TestGetAsyncThreadPool:
>>> https://github.com/named-data/jndn/blob/master/examples/src/net/named_data/jndn/tests/TestGetAsyncThreadPool.java 
>>>
>>>
>>> Thanks,
>>> - Jeff T
>>>
>>> On 2017/6/7, 17:46:14, "Ndn-lib on behalf of Teng Liang" 
>>> <ndn-lib-bounces at lists.cs.ucla.edu 
>>> <mailto:ndn-lib-bounces at lists.cs.ucla.edu> on behalf of 
>>> philoliang at email.arizona.edu <mailto:philoliang at email.arizona.edu>> 
>>> wrote:
>>>
>>>     Hello all,
>>>
>>>     Is jNDN thread-safe? Specifically, can one thread express
>>>     Interests to
>>>     one face, while another thread uses the same face to process events?
>>>
>>>     Thanks,
>>>     Teng
>>>     _______________________________________________
>>>     Ndn-lib mailing list
>>>     Ndn-lib at lists.cs.ucla.edu <mailto:Ndn-lib at lists.cs.ucla.edu>
>>>     http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-lib
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-lib/attachments/20170613/659b3c23/attachment-0001.html>


More information about the Ndn-lib mailing list