
95) 2018.12.25
95.1) bugfix: fixed bugs of acl_fiber_cond_timedwait in acl_fiber_cond.c

94) 2018.11.29
94.1) bugfix: fixed bugs in fbase_event.c/fiber_event.c

93) 2018.11.26
93.1) bugfix: event_iocp.c е iocp_check еһ
-- program_code@sohu.com

92) 2018.11.25
92.1) feature: fiber_event.c ӿƲ

91) 2018.10.7
91.1) merge: merge some changes from acl/lib_fiber for supporting IPV6.

90) 2018.8.18
90.1) feature: add acl_fiber_set_fdlimit for user to control the max fd.

89) 2018.5.18
89.1) bugfix:  poll APIȥ POLLERR, POLLHUP Ĵ

88) 2018.4.24
88.1) feature: acl Э̿ MacOS 

87) 2018.4.17
87.1) bugfix: Э̻δִ϶ acl_fiber_stop ʱҪ
Э̶еЭ̶ڴͷŵ

86) 2018.3.5
86.1) bugfix: acl_fiber_gethostbyname ЭģʽǲȫģڶЭ
һֲ߳̾⣬ӶڴʧܣʽʹЭֲ̾

------------------------------------------------------------------------------

85) 2018.2.6
85.1) bugfix: ޸ FreeBSD kqueue 

84) 2018.2.5
84.1) feature: fiber_server.cpp ֧Э̵ʱѡͬ¼

83) 2018.2.1
83.1) feature: Э¼ Winsock IOCP ֧

82) 2018.1.28
82.1) feature:  API acl_fiber_schedule_init() Э̵Ϊģʽ
82.2) feature:  API acl_fiber_schedule_set_event() ʽЭ¼

81) 2018.1.23
81.1) bugfix: event_epoll.c   epoll_event_wait ûд EPOLLERR|EPOLLHUP
Ĵᵼ³ѭ

80) 2018.1.22
80.1) feature: fiber_io.c ûмûжʱʱ IO Э
Զ˳
80.2) bugfix: event_select.c/event_poll.c ûʱӦ SleepΪ
Windows µ select/WSAPoll ľΪ

79) 2018.1.21
79.1) bugfix: event_poll.c Ӧô쳣POLLERR | POLLHUP | POLLNVAL

78) 2018.1.17
78.1) performance: win32 Ϣ洦Żÿεѭ̿ԾȡϢ
ӶϢ

77) 2018.1.16
77.1) performance: Գʱ/дʱ poll/select ٵö/дȼ
ǰ״̬ɶ򲻱ٴε IO ȴ

76) 2018.1.14
76.1) feature: Эģ֧ WIN32 Ϣ棬Ӷ޷
76.2) feature: acl_fiber_poll/acl_fiber_select ֧ win32 ƽ̨

75) 2017.12.28
75.1) feature:  kqueue ¼֧ FreeBSDӶʹ acl Э֧ FreeBSD

74) 2017.12.19
74.1) bugfix:  hook poll ʱһؼ

73) 2017.11.23
73.1) feature: fiber_event.c ͬʱ֧Э/̻߳ܿɴǧ򼶱 QPS

72) 2017.11.2
72.1) feature: fiber.c, fiber_alloc ҪźŵĴ
72.2) bugfix: fiber_io.c, fiber_io_loop ײ 32 λ⣬ᵼ
ʱ޷

71) 2017.10.27
71.1) bugfix: fiber.c__thread_fiber->switched ԭΪз int ͣпܻ
Э̵ȳ

70) 2017.10.20
70.1) feature: EVENT::poll_list, epoll_list Բ FIFO  STACK
70.2) feature: hook sendfile/sendfile64

69) 2017.10.17
69.1) feature:  acl_fiber_sys_errno/acl_fiber_sys_errno_set/
acl::fiber::get_sys_errno/acl::fiber_set_sys_errno API ڻ/õǰ߳
ϵͳ errno

68) 2017.10.16
68.1) feature: hook sendfile API

67) 2017.10.10
67.1) bugfix: fiber_mutex ̰߳ȫʽʱIO ̻Ƿڴ
¼ѭԭǶ߳еĶ߳ͬʱͬһ fd 
ʱײ⣬޸Ϊ IO ʱdup һµ fd ʹ߳еЭ
ڸ fd 

66) 2017.9.29
66.1) feature: fiber_mutex ͬʱ֧߳Э

65) 2017.9.28
65.1) valgrind: fiber_server.c ˳ǰҪͷŵһЩȫֶ
valgrind һЩ

64) 2017.9.27
64.1) workaround: Ϊʹ valgrind ڴ⣬ڲһЩ̬ȫֶ̬
ֶͷţӦò鿴ڴ

63) 2017.9.23
63.1) feature: hook_io.c ֧ hook mkdir

62) 2017.9.22
62.1) feature: hook_io.c ֧ hook stat/fstat/lstat

61) 2017.9.20
61.1) feature: hook_net.c ֧ epoll_create1 API

60) 2017.9.18
60.1) feature:  fiber_trigger ڰʱ䴥

59) 2017.9.10
59.1) feature: Э̷ģִ reload Խִ״̬ master

58) 2017.8.25
58.1) feature:  C++ 汾Э̶ʱ fiber_timer
58.2) feature: acl_fiber_create_timer ЭջС

57) 2017.8.21
57.1) feature: fiber_server.c ڶʱҲͨļָ master_reuseport
ѡ

56) 2017.7.27
56.1) compile: master_fiber.hpp ȥ˶ master_base.hpp İҪӦ
ҪȰͷļ
56.2) compile: lib_fiber.h ȥ˶ lib_acl.h İ

55) 2017.7.22
55.1) feature: master_fiber  get_conf_path, acl_fiber_server.cpp 
acl_fiber_server_conf˶ڻõǰķļ·

54) 2017.7.7
54.1) feature: master/fiber_server.c н fiber_sleep Э̵ջС
ƣͬʱڲ STACK_SIZE ȱʡֵ 64 K Ϊ 128 KֵҲû
Э̵ջȱʡС

53) 2017.7.4
53.1) feature: fiber_server.c/master_fiber.cpp ֧ SIGHUP źŻص
53.2) ع fiber_server.c/master_fiber.cpp 

52) 2017.7.2
52.1) feature: fiber_server.c ֶ֧߳ģʽ

51) 2017.6.6
51.1) feature: fiber_server.c Э̵ǰĹ̷߳нУӶʹ
öδջСЭջС

50) 2017.5.16
50.1) feature: fiber_server.c Э̷ģƽ˳

49) 2017.5.1
49.1) samples/pgsql: Ӳ postgresql Ŀͻ

48) 2017.4.24
48.1) bugfix: fiber.s  acl_fiber_set_specific ڵ realloc ·ڴ
ʱӦýеĲ NULL

------------------------------------------------------------------------------

47) 2017.4.13
47.1) feature: hook_net.c  getaddrinfo ֧

46) 2017.4.10
46.1) feature: Эź߳ʹʱֹͬһźͬ߳ʹ

45) 2017.3.29
45.1) bugfix: һЭ̴ poll wait ״̬ʱһЭ kill ʱڴ
Ƿʣ޸ʽ event.c ж poll list ıʲ pop ʽͬʱ
hook_net.c е poll е kill ʱԶ뱾 BUG صļ
fiber.c, hook_net.c, event.c hook_net.c  event.c е޸ؼ

44) 2017.3.28
44.1) feature: fiber.c  fiber_alloc ûЭڴʱӦ
free->mallocǵ reallocһԱʹ tcmalloc ʱ valgrind
ڴ澯棬һ棬Чʹ

43) 2017.3.23
43.1) feature: fiber.c  acl_fiber_signal/acl_fiber_kill УҪ errno
Ϊ ECANCELED

42) 2017.3.9
42.1) compile: ? valgrind ѡʱһ뾯
42.2) workaround: master_fiber еķ run_alone ȥһԭ
ƴɴļжȡ

41) 2017.2.9
41.1) bugfix: fiber.c Уfiber_init Ӧñ뱣֤ __sys_errno Ϊ NULL ʱ
ãһЩ̬ʼҪ __sys_errno ʹ

40) 2017.1.23
40.1) workaround: Э̺ͳһĳ޷ 32 λ

39) 2017.1.12
39.1) bugfix: Э˫ͨģʽ£дʱᵼ¶ҲΪӳٹر
¼ò

38) 2017.1.5
38.1) bugfix: fiber.c к acl_fiber_killed еж

37) 2016.12.31
37.1) feature:  acl_fiber_signal Э̸Э̷ͻź

36) 2016.12.27
36.1) bugfix: fiber.cpp  kill 轫 f_ Ա NULLֹǶ׷ʷǷַ
36.2) feature: fiber.cpp ǰеЭ fiber (ֻڹ
нΪ true)ӶԷʹ fiber еķ

35) 2016.12.19
35.1) feature: fiber.c йЭֲ̾ĽӿڵʵӦó
35.2) bugfix: fiber.c еЭ˳ʱЭֲ̾Ķδͷڴй¶
35.3) sample: samples/fiber_localʾڲЭֲ̾

34) 2016.12.16
34.1) bugfix: hook_net.c, hook_io.c, event_epoll.c Ϊ hook ˺ܶϵͳ
APIӦ main ִǰҪЩ API ʱܻΪ hook δ
жɺָΪ NULLӶ³

33) 2016.12.8
33.1) bugfix: hook_net.c УЭģʽ£hook epoll  API Ӧü

32) 2016.12.3
32.1) feature: acl_fiber_kill ֧ acl_fiber_sleep, acl_fiber_sem,
acl_fiber_mutex_lock Э

31) 2016.11.28
31.1) feature: fiber.cpp Уfiber  kill  killed ɱЭ
жָЭǷѾ˳

30) 2016.11.27
30.1) bugfix: fiber.c к acl_fiber_create дʱڴ⣬
__thread_fiber->fibers  realloc ڴ治Ϊ __thread_fier->size
㷽

29) 2016.11.24
29.1) feature:  acl_fiber_kill ӿָ֪ͨЭ˳

28) 2016.10.31
28.1) feature: fiber.c ʵ __i386__  SETJMPLONGJMP Ļ෽ʽ
libdill 

27) 2016.10.19
27.1) bugfix: fiber_io.c е __thread_fiber->loop_fn ûиֵ

26) 2016.9.25
26.1) feature:  acl_fiber_post_event ÿ¼ѭпԵ
úõĻص

25) 2016.9.22
25.1)  acl_fiber_stop --> acl_fiber_schedule_stop,
acl::fiber::stop --> acl::fiber::schedule_stop

24) 2016.9.21
24.1) bugfix: hook_io.c е writev() Ӧõ fiber_writev()

23) 2016.9.1
23.1) feature: ֧ C++11 ܣʹ lambda ʽЭ̸ӷ

------------------------------------------------------------------------------

22) 2016.8.25
22.1) feature: hook_io.c ṩ˵ fiber_xxx IO ӿ

21) 2016.8.17
21.1) performance: fiber.c к fiber_alloc ڴЭջʱʹ malloc 
ԭ callocڴύʹ棬ӶЧЭ̵ʵռڴС
21.2) bugfix: hook_io.c е read ȶֻе < 0 ʱҪ errno
21.3) bugfix: fiber_io.c, acl_fiber_delay Ҫ ev->timeout ֵ
21.4) performance: hook_net.c  hook ϵͳ accept API Ż˽ӵ˳
Ӷʹ accept ٶȸ

20) 2016.8.16
20.1) portable: fiber.c ǿ SETJMP ֲ

19) 2016.8.10
19.1) performance&feature: ʹ setjmp/longjmp ջתܸ

18) 2016.8.7
18.1) feature: fiber.c  acl_fiber_schedule ǰԶ acl_var_hook_sys_api
 0Ӷָϵͳ API ù

17) 2016.8.5
17.1) feature: hook_io.c ϵͳ API sleep  hook 

16) 2016.8.4
16.1) bugfix: hook_net.c е gethostbyname_r ڽʱĵַֽ
--- found by 

15) 2016.7.28
15.1) bugfix: hook_net.c е poll/epoll_wait ڳʱļ󣬻ᵼ³ʱ
ʱǰ

14) 2016.7.26
14.1) feature: hook_net.c е connect ˳

13) 2016.7.22
13.1) bugfix: poll/epoll_wait API ĳʱֵõĲ
13.1) performance: fiber.c  acl_fiber_yield жǷдЭ̣
ȻپǷҪлЭģӶĵл

12) 2016.7.14
12.1) feature: hook_net.c  epoll  hook ֧

11) 2016.7.9
11.1) feature: fiber_sem.c Эź

10) 2016.6.22
10.1) feature: fiber_server.c ģֿ֧гʱ˳˳

9) 2016.6.21
9.1) feature:  socket ͵ fd ͬģʽ
9.2) feature: master_fiber.c ֧ dispatch ʽÿͻ

8) 2016.6.19
8.1) feature:  FIBER 
8.2) feature:  fiber_server.c ģ飬 acl_master ܿ

7) 2016.6.18
7.1) feature:  FIBER_CHANNEL Э̼Ľͨ

6) 2016.6.15
6.1) feature: Ӷʱ -- fiber_create_timer()

5) 2016.6.14
5.1) feature: hook  errno ĺ __errno_locationӶʹ errno 
ÿЭǰȫ

4) 2016.6.11
4.1) valgrind: ӱ뿪Էֹ valgrind ߶ swapcontext ת

3) 2016.6.9
3.1) performance: fiber_schedule.cлΪлӶļ
лЧ --- by niukey@qq.com

2) 2016.6.5
2.1) feature:  fiber_schedule.c, fiber_io.c еȫ־̬Ϊֲ߳̾
Ϊʵֶ̻߳Э׼

1) 2016.6.4
1.1) ǰЭ֧ hook: read/redv/redv/recvfrom/recvmsg,
write/writev/send/sendto/sendmsg, poll/select/sleep/gethostbyname/gethostbyname_r
