[ 
https://issues.apache.org/jira/browse/THRIFT-491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707187#action_12707187
 ] 

Rush Manbert commented on THRIFT-491:
-------------------------------------

Rather than defining a new Condition class, it turns out to make a lot more 
sense to just add this public method to Monitor:
  /** Create a new Monitor that has a different condition, but shares the mutex 
with this one.
   */
  shared_ptr<Monitor> newMonitorSharedMutex() const;

and change the implementation to keep a boost::shared_ptr to the mutex object. 
This allows three Monitor objects to be used in TFileTransport in place of the 
three pthread_cond_t objects that it has now.

It looks like I need to define a new class that just does basic threading, 
either pthreads or boost threads. That will take care of the writer thread.

Comments?


> Ripping raw pthreads out of TFileTransport and associated test issues
> ---------------------------------------------------------------------
>
>                 Key: THRIFT-491
>                 URL: https://issues.apache.org/jira/browse/THRIFT-491
>             Project: Thrift
>          Issue Type: Question
>          Components: Library (C++)
>    Affects Versions: 0.1
>         Environment: Mac OS X 10.5.6
>            Reporter: Rush Manbert
>
> The last piece of replacing the pthread-based threading implementation with a 
> Boost threads implementation is to replace all of the raw ptherad mutex and 
> condition usage in TFileTransport.
> I think the best way to proceed is to define a Condition class, similar to 
> the way there is a Mutex class defined, give it a generic API that satisfies 
> the demands of TFileTransport, then implement it both ways. You would need to 
> construct a Condition object with a Mutex object reference, or probably a 
> weak_ptr<Mutex> so we can know that the condition waits are safe. I'll add a 
> comment with the API I work out.
> However, my main concern is how to test the new code. It looks like I can use 
> stress-test, but iI was hoping that someone who is familiar with the app 
> could give me some pointers or a test procedure that exercises the threading 
> code.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to