THats fine (except that you should use new-style classes)

On Friday, January 15, 2016 at 5:34:35 PM UTC+1, fhivert wrote:
>
>      Dear all, 
>
> I'd like to have a class with a method with some implementation internal 
> that 
> differ if the os is MacOS of anything else. 
>
> Context 
> ======= 
>
> I'm Fixing #13580 "Parallel map reduce on SearchForest" where I'm writing 
> code 
> to parallelize some specific computation. In the internal, I need some 
> synchronizing primitive such as semaphore. However, on MacOS the semaphore 
> are 
> broken (or at least are not fully POSIX compliant). In particular, on 
> standard 
> unixes, when two processes are trying to acquire a semaphore whose value 
> is 
> more than two, they always both succeeded. On MacOS, one of them may fail. 
> As 
> a consequence, I'm writing a different code form MacOS relying on a Lock 
> and a 
> shared integer. It may be slower on system where semaphore are implemented 
> in 
> a lockless way. 
>
> Question 
> ======== 
>
> I'd like to write a *Python* (not C/C++/Cython) code which is supposed to 
> work 
> fast on any Posix compliant plateform and an alternative implementation on 
> MacOS. Surprisingly, I can't find any other instance on the whole Sage 
> library. Do you think it's ok to do that ? Is a code like 
>
>     class foo: 
>         if sys.platform != 'darwin': 
>             def meth(self): 
>                 print "I'm on a good Posix compliant OS" 
>         else: 
>             def meth(self): 
>                 print "I'm using the fallback implementation" 
>
> the right way to do it ? 
>
> Thanks for any suggestions. 
>
> Cheers, 
>
> Florent 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to