Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有些时候系统不会调用HandleWrite #5

Open
GoogleCodeExporter opened this issue Jul 2, 2015 · 3 comments
Open

有些时候系统不会调用HandleWrite #5

GoogleCodeExporter opened this issue Jul 2, 2015 · 3 comments

Comments

@GoogleCodeExporter
Copy link

在使用过程中,发现有些时候注册一个EV_WRITE事件,以使得自
动调用
HandleWrite函数,发现有些时候系统不会调用HandleWrite。我的的�
��概过程是这个样子的。有客户过来的时候,在worker线程里面
创建一个IEventHandler,在IEventHandler里面会创建别的线程作一些
事情,其中一个线程是等待一个结果整备好的信号,然后采��
�数据,注册一个EV_WRITE,以期会调用IEventHandler的HandleWrite将��
�据发送给客户端。目前存在HandleWrite没有被调用的情况。
这个是否和前面一个EV_WRITE事件处理的过程有关,前面注册了
一个EV_WRITE,该EV_WRITE的HandleWrite里面分发了三组数据,每组��
�据发送完成后,都会UnregisterEvent,等于是只有一个EV_WRITE,��
�执行了三个UnregisterEvent。不知道这个会不会影响reactor的运行
?
因为HandleWrite没有被调用,目前只好直临时获取HL_SOCKET,往里
面发送数据给客户端。不知道这里会不会有潜在的问题?
我要如何解决HandleWrite的问题,各位有什么建议?
谢谢!

Original issue reported on code.google.com by MichaelY...@gmail.com on 10 Jun 2011 at 11:57

@GoogleCodeExporter
Copy link
Author

前面注册了一个EV_WRITE,该EV_WRITE的HandleWrite里面分发了三组��
�据,每组数据发送完成后,都会UnregisterEvent。
-------------------------------------------------
这句话怎么理解呢?
是在HandleWrite中,调用了三次send函数?,每次send之后都调用U
nregisterEvent?
注册一次EV_WRITE,执行三次UnregisterEvent,并不会出现任何问题
。

如果你调用UnregisterEvent,注销了EV_WRITE事件,后续肯定就不能
得到write通知了。所以你要在需要写入的时候再次注册这个事
件。

Original comment by sparklin...@gmail.com on 22 Jun 2011 at 7:33

@GoogleCodeExporter
Copy link
Author

主要问题是后面再注册EV_WRITE也没有处理到。所以只能直接发
了。

Original comment by MichaelY...@gmail.com on 23 Jun 2011 at 12:18

@GoogleCodeExporter
Copy link
Author

不能重现你的问题,如果注册了Write事件却不能被调用,test��
�码是可以测试出来的...
你看一下log里面有没有RegisterEvent出错的log,或者有RemoveHandler
的调用

Original comment by sparklin...@gmail.com on 23 Jun 2011 at 1:46

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant