On 05/20/2012 02:12 AM, Ian Latter wrote: > Hello, > > > Couple of questions that might help make my > module a little more sane; > > 0) Is there any developer docco? I've just done > another quick search and I can't see any. Let > me know if there is and I'll try and answer the > below myself. Your best bet right now (if I may say so) is the stuff I've posted on hekafs.org - the "Translator 101" articles plus the API overview at http://hekafs.org/dist/xlator_api_2.html > 1) What is the difference between STACK_WIND > and STACK_WIND_COOKIE? I.e. I've only > ever used STACK_WIND, when should I use > it versus the other? I see Krishnan has already covered this. > 2) Is there a way to write linearly within a single > function within Gluster (or is there a reason > why I wouldn't want to do that)? Any blocking ops would have to be built on top of async ops plus semaphores etc. because (unlike e.g. an HTTP server) the underlying sockets etc. are shared/multiplexed between users and activities. Thus you'd get much more context switching that way than if you stay within the async/continuation style. Some day in the distant future, I'd like to work some more on a preprocessor that turns linear code into async code so that it's easier to write but retains the performance and resource-efficiency advantages of an essentially async style. I did some work (http://pl.atyp.us/ripper/UserGuide.html) in this area several years ago, but it has probably bit-rotted to hell since then. With more recent versions of gcc and LLVM it should be possible to overcome some of the limitations that version had.