On Thu, Jul 26, 2012 at 5:02 PM, Denis Bilenko <denis.bile...@gmail.com> wrote:
> On Thu, Jul 26, 2012 at 6:31 PM, Benoit Chesneau <bchesn...@gmail.com> wrote:
>> On Thu, Jul 26, 2012 at 3:02 PM, Denis Bilenko <denis.bile...@gmail.com> wrote:
>>> On Thu, Jul 26, 2012 at 4:25 PM, Benoit Chesneau <bchesn...@gmail.com> wrote:
>>>> Other possibility would be binding libeio [1]. It would allows to have
>>>> non blocking io on the fs just like libev with the sockets. Also this
>>>> is the same author/group.
>>> How is it better than using gevent.threadpool?
>> for what? it may be better to share the same loop of events instead
>> of having a thread / file io operations imo
> libeio uses threadpool for most operations, isn't it?
> You already can make any file operation non-blocking:
>>>> threadpool.apply(os.unlink, (filename, )) # won't block the event loop
> So I don't see a reason for wrapping async unlink from libeio which
> would also run unlink() in a [private] thread pool. It could be that a
> threadpool implemented in C has less overhead. However, making
> wrappers for all those eio functions to be compatible with Python os
> module does not seems worth the trouble.
> For those who want async OS operations in gevent, it's now really easy
> to make them yourself:
I'm evaluating the use of PyCurl and, since I already use Gevent, I will also look at the Gevent integration. Can you tell me a quick way of checking if with the current versions of the libs there still exist reference leaks?
When using pymysql + DBUtils.PooledDB with gevent.monkey.patch_socket(), and making queries from two greenlets, cursor.fetchall() sporadically returns None instead of a sequence. cursor.fetchall() is supposed to always return a sequence (possibly an empty sequence), but never None.
On Sunday, September 16, 2012 9:52:28 AM UTC-7, vitaly wrote:
> When using pymysql + DBUtils.PooledDB with gevent.monkey.patch_socket(), > and making queries from two greenlets, cursor.fetchall() sporadically > returns None instead of a sequence. cursor.fetchall() is supposed to > always return a sequence (possibly an empty sequence), but never None.
Also, same problem when using gevent.monkey.patch_all() instead of gevent.monkey.patch_socket().