[ 
https://issues.apache.org/jira/browse/DISPATCH-2238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17403816#comment-17403816
 ] 

ASF GitHub Bot commented on DISPATCH-2238:
------------------------------------------

franz1981 commented on pull request #1349:
URL: https://github.com/apache/qpid-dispatch/pull/1349#issuecomment-904658440


   @kgiusti Unrelated to this change, but it would be nice to have some flag 
that record the state of router thread (waiting/parked/sleeping or not) and 
save signaling to happen if core is already processing something.
   
   The logic would be:
   
   WORKER THREAD:
   
       signal = false
       lock 
       add action
       if (core is sleeping) 
           signal = true
       unlock
       if signal
           signal()
   
   Core thread side we just need to mark core->sleeping right before going to 
sleep and it's done.
   This is going to save many signaling (and talking with kernel just to 
inspect the state of the core thread, that's something we already know in 
user-space!).
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


> Avoid holding the core action lock when waking the core thread
> --------------------------------------------------------------
>
>                 Key: DISPATCH-2238
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2238
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Router Node
>    Affects Versions: 1.17.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Minor
>             Fix For: 1.18.0
>
>
> Currently when an action is queued for the core to process, the queuing code 
> calls pthread_cond_signal() while holding the associated mutex.  This can 
> cause the core thread to be woken then immediately put sleep while taking the 
> mutex.
>  
> It is legal to call pthread_cond_signal() without holding the lock. Doing 
> this will avoid contention on the associated mutex.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to