annotate src/os/win32/nginx_icon48.xpm @ 6536:f7849bfb6d21

Improved EPOLLRDHUP handling. When it's known that the kernel supports EPOLLRDHUP, there is no need in additional recv() call to get EOF or error when the flag is absent in the event generated by the kernel. A special runtime test is done at startup to detect if EPOLLRDHUP is actually supported by the kernel because epoll_ctl() silently ignores unknown flags. With this knowledge it's now possible to drop the "ready" flag for partial read. Previously, the "ready" flag was kept until the recv() returned EOF or error. In particular, this change allows the lingering close heuristics (which relies on the "ready" flag state) to actually work on Linux, and not wait for more data in most cases. The "available" flag is now used in the read event with the semantics similar to the corresponding counter in kqueue.
author Valentin Bartenev <vbart@nginx.com>
date Fri, 13 May 2016 17:19:23 +0300
parents 37580bd13ca5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2734
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1 /* XPM */
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 static char * nginx_xpm[] = {
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 "48 48 2 2",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4 /* colors */
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 " c none",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6 "GG c #009900",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 /* pixels */
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28 " GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
29 " GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 " GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 " GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
48 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 " ",
37580bd13ca5 add 48x48 icon
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 " ",