gluster-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gluster-devel] Question about the synctask


From: Anand Avati
Subject: Re: [Gluster-devel] Question about the synctask
Date: Wed, 26 Sep 2012 14:20:37 -0700



On Wed, Sep 26, 2012 at 1:55 AM, Gustavo Bervian Brand <address@hidden> wrote:
Hello,

  Some days ago when I mentioned I was using syncop_*() calls and Avati asked if I was triggering them from a synctask worker.
 
  By what I can see the synctask_new will create a new thread each time, so if want a real syncronous execution from within a sequence of readv calls, creating a synctask at each readv doesn't seem a good way to go because the order of execution of these threads is not guaranteed to be sequential.

  So, my question is why the syncop calls wouldn't be ok to be executed outside a synctask worker in this scenario (or any other)? 
  I didn't find any documentation about this, so that's why I am asking.


Synctasks use pre-running syncproc threads to schedule the task. The normal FOPs are asynchronous in nature (i.e, a STACK_WIND return is only the return of a submission, not the return of the operation). Syncops give you a synchronous wrapper around the fundamentally asynchronous calls. For this they either block the calling thread (which is very dangerous if the thread calling syncop is the poll thread), or, when executed within a synctask (in a syncenv), utilize setcontext/getcontext to give the "feeling" of a blocked thread.


Avati



reply via email to

[Prev in Thread] Current Thread [Next in Thread]