Skip to content

fix bugs#3

Open
JiangNanMax wants to merge 1 commit into
FRosner:mainfrom
JiangNanMax:main
Open

fix bugs#3
JiangNanMax wants to merge 1 commit into
FRosner:mainfrom
JiangNanMax:main

Conversation

@JiangNanMax

Copy link
Copy Markdown

Hi!

I run your example program of kqueue in Go,and found some bugs.

Sharing my idea with you here.

First, after the kqueue server started, i connect to localhost:8080 by telnet, first connection is OK, kqueue server is correctly accept first connection and echo the msg. But new another connection at the same time, you can see that kqueue server do not accept the connection at all.

The cause of first bug is that you do not set connection to non-blocking after accept, so your code is running in blocking mode and one connection block all other connection, corresponding code is in kqueue.go -> Handle( )

But when i set connection to non-blocking after connection accepted, another problem comes. After first echo, connection is closed, after debuging, i found that you use a for loop in your user-define handler func, you do not need to do so, because epoll/kqueue is event-drive, it will handler the read/write event in event loop, you just need to handle the event once then return, do not need to wait for data in loop again, corresponding code is in main.go

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant