Skip to content

Commit 835e3a2

Browse files
author
ubuntu14
committed
fixed some urgent bugx
1 parent 3c43a91 commit 835e3a2

File tree

19 files changed

+273
-261
lines changed

19 files changed

+273
-261
lines changed

changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
�޸���ʷ�б���
22
------------------------------------------------------------------------
3+
91) 2015.12.21 --- acl 3.1.4.1 �汾������(�޸��˼������� BUG)
34
90) 2015.12.20 --- acl 3.1.4 �汾������
45
89) 2015.11.4
56
89.1) �޸� Makefile���� lib_acl, lib_protocol, lib_acl_cpp ����������һ��ͳһ

lib_acl/include/stdlib/acl_vstream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ struct ACL_VSTREAM {
8787
int read_buf_len; /**< read_buf's capacity */
8888
int read_cnt; /**< data's length in read_buf */
8989
unsigned char *read_ptr; /**< pointer to next position in read_buf */
90-
int sys_read_ready; /**< if the system buffer has some data */
90+
int read_ready; /**< if the system buffer has some data */
9191

9292
acl_off_t total_read_cnt; /**< total read count of the fp */
9393
acl_off_t total_write_cnt; /**< total write count of the fp */

lib_acl/src/aio/acl_aio_read.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ static void __gets_notify_callback(int event_type, ACL_ASTREAM *astream)
206206
acl_non_blocking(ACL_VSTREAM_SOCK(astream->stream),
207207
ACL_NON_BLOCKING);
208208
do {
209-
astream->stream->sys_read_ready = 1;
209+
astream->stream->read_ready = 1;
210210
ret = __gets_peek(astream);
211211
if (astream->keep_read == 0)
212212
break;
@@ -396,7 +396,7 @@ static void __read_notify_callback(int event_type, ACL_ASTREAM *astream)
396396
acl_non_blocking(ACL_VSTREAM_SOCK(astream->stream),
397397
ACL_NON_BLOCKING);
398398
do {
399-
astream->stream->sys_read_ready = 1;
399+
astream->stream->read_ready = 1;
400400
ret = __read_peek(astream);
401401
} while (ret > 0);
402402

@@ -574,7 +574,7 @@ static void __readn_notify_callback(int event_type, ACL_ASTREAM *astream)
574574
acl_non_blocking(ACL_VSTREAM_SOCK(astream->stream),
575575
ACL_NON_BLOCKING);
576576
do {
577-
astream->stream->sys_read_ready = 1;
577+
astream->stream->read_ready = 1;
578578
ret = __readn_peek(astream);
579579
} while (astream->keep_read && ret > 0);
580580

lib_acl/src/event/acl_events.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ static void event_init(ACL_EVENT *eventp, int fdsize,
3434
eventp->fdsize = fdsize;
3535
/* eventp->fdtab_free_cnt = 0; */
3636
eventp->fdcnt = 0;
37-
eventp->fdcnt_ready = 0;
37+
eventp->ready_cnt = 0;
3838
eventp->fdtabs = (ACL_EVENT_FDTABLE **)
3939
acl_mycalloc(fdsize,sizeof(ACL_EVENT_FDTABLE *));
40-
eventp->fdtabs_ready = (ACL_EVENT_FDTABLE **)
40+
eventp->ready = (ACL_EVENT_FDTABLE **)
4141
acl_mycalloc(fdsize, sizeof(ACL_EVENT_FDTABLE *));
4242

4343
eventp->maxfd = 0;
@@ -295,7 +295,7 @@ void acl_event_free(ACL_EVENT *eventp)
295295
}
296296

297297
acl_myfree(eventp->fdtabs);
298-
acl_myfree(eventp->fdtabs_ready);
298+
acl_myfree(eventp->ready);
299299
free_fn(eventp);
300300
}
301301

lib_acl/src/event/events.c

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,28 @@ void event_check_fds(ACL_EVENT *ev)
1717
if ((fdp->stream->flag & ACL_VSTREAM_FLAG_BAD) != 0) {
1818
fdp->stream->flag &= ~ACL_VSTREAM_FLAG_BAD;
1919
fdp->event_type |= ACL_EVENT_XCPT;
20-
fdp->fdidx_ready = ev->fdcnt_ready;
21-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
20+
fdp->fdidx_ready = ev->ready_cnt;
21+
ev->ready[ev->ready_cnt++] = fdp;
2222
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_READ)) {
2323
if (ACL_VSTREAM_BFRD_CNT(fdp->stream) > 0) {
24-
fdp->stream->sys_read_ready = 0;
24+
fdp->stream->read_ready = 0;
2525
fdp->event_type |= ACL_EVENT_READ;
26-
fdp->fdidx_ready = ev->fdcnt_ready;
27-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
28-
} else if (fdp->stream->sys_read_ready
29-
&& !fdp->listener)
30-
{
26+
fdp->fdidx_ready = ev->ready_cnt;
27+
ev->ready[ev->ready_cnt++] = fdp;
28+
} else if (fdp->stream->read_ready && !fdp->listener) {
3129
fdp->event_type |= ACL_EVENT_READ;
32-
fdp->fdidx_ready = ev->fdcnt_ready;
33-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
30+
fdp->fdidx_ready = ev->ready_cnt;
31+
ev->ready[ev->ready_cnt++] = fdp;
3432
} else if (fdp->r_ttl > 0 && ev->present > fdp->r_ttl) {
3533
fdp->event_type |= ACL_EVENT_RW_TIMEOUT;
36-
fdp->fdidx_ready = ev->fdcnt_ready;
37-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
34+
fdp->fdidx_ready = ev->ready_cnt;
35+
ev->ready[ev->ready_cnt++] = fdp;
3836
}
3937
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_WRITE)) {
4038
if (fdp->w_ttl > 0 && ev->present > fdp->w_ttl) {
4139
fdp->event_type |= ACL_EVENT_RW_TIMEOUT;
42-
fdp->fdidx_ready = ev->fdcnt_ready;
43-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
40+
fdp->fdidx_ready = ev->ready_cnt;
41+
ev->ready[ev->ready_cnt++] = fdp;
4442
}
4543
}
4644
}
@@ -52,7 +50,7 @@ int event_prepare(ACL_EVENT *ev)
5250
ACL_SOCKET sockfd;
5351
int i, nwait = 0;
5452

55-
ev->fdcnt_ready = 0;
53+
ev->ready_cnt = 0;
5654

5755
for (i = 0; i < ev->fdcnt; i++) {
5856
fdp = ev->fdtabs[i];
@@ -63,31 +61,29 @@ int event_prepare(ACL_EVENT *ev)
6361
if ((fdp->stream->flag & ACL_VSTREAM_FLAG_BAD) != 0) {
6462
fdp->stream->flag &= ~ACL_VSTREAM_FLAG_BAD;
6563
fdp->event_type |= ACL_EVENT_XCPT;
66-
fdp->fdidx_ready = ev->fdcnt_ready;
67-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
64+
fdp->fdidx_ready = ev->ready_cnt;
65+
ev->ready[ev->ready_cnt++] = fdp;
6866
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_READ)) {
6967
if (ACL_VSTREAM_BFRD_CNT(fdp->stream) > 0) {
70-
fdp->stream->sys_read_ready = 0;
68+
fdp->stream->read_ready = 0;
7169
fdp->event_type |= ACL_EVENT_READ;
72-
fdp->fdidx_ready = ev->fdcnt_ready;
73-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
74-
} else if (fdp->stream->sys_read_ready
75-
&& !fdp->listener)
76-
{
70+
fdp->fdidx_ready = ev->ready_cnt;
71+
ev->ready[ev->ready_cnt++] = fdp;
72+
} else if (fdp->stream->read_ready && !fdp->listener) {
7773
fdp->event_type |= ACL_EVENT_READ;
78-
fdp->fdidx_ready = ev->fdcnt_ready;
79-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
74+
fdp->fdidx_ready = ev->ready_cnt;
75+
ev->ready[ev->ready_cnt++] = fdp;
8076
} else if (fdp->r_ttl > 0 && ev->present > fdp->r_ttl) {
8177
fdp->event_type |= ACL_EVENT_RW_TIMEOUT;
82-
fdp->fdidx_ready = ev->fdcnt_ready;
83-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
78+
fdp->fdidx_ready = ev->ready_cnt;
79+
ev->ready[ev->ready_cnt++] = fdp;
8480
} else
8581
nwait++;
8682
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_WRITE)) {
8783
if (fdp->w_ttl > 0 && ev->present > fdp->w_ttl) {
8884
fdp->event_type |= ACL_EVENT_RW_TIMEOUT;
89-
fdp->fdidx_ready = ev->fdcnt_ready;
90-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
85+
fdp->fdidx_ready = ev->ready_cnt;
86+
ev->ready[ev->ready_cnt++] = fdp;
9187
} else
9288
nwait++;
9389
} else
@@ -103,12 +99,12 @@ void event_fire(ACL_EVENT *ev)
10399
int i, type;
104100
acl_int64 r_timeout, w_timeout;
105101
ACL_EVENT_NOTIFY_RDWR r_callback, w_callback;
106-
ACL_EVENT_FDTABLE **ready = ev->fdtabs_ready;
102+
ACL_EVENT_FDTABLE **ready = ev->ready;
107103

108104
if (ev->fire_begin)
109105
ev->fire_begin(ev, ev->fire_ctx);
110106

111-
for (i = 0; i < ev->fdcnt_ready; i++) {
107+
for (i = 0; i < ev->ready_cnt; i++) {
112108
fdp = ready[i];
113109

114110
/* ready[i] maybe been set NULL in timer callback */
@@ -167,7 +163,7 @@ void event_fire(ACL_EVENT *ev)
167163
* more quickly.
168164
*/
169165
if (ready[i] && ready[i]->stream
170-
&& (ready[i]->stream->sys_read_ready ||
166+
&& (ready[i]->stream->read_ready ||
171167
ACL_VSTREAM_BFRD_CNT(ready[i]->stream) > 0))
172168
{
173169
ev->read_ready++;
@@ -211,31 +207,29 @@ int event_thr_prepare(ACL_EVENT *ev)
211207
if (fdp->stream->flag & ACL_VSTREAM_FLAG_BAD) {
212208
fdp->stream->flag &= ~ACL_VSTREAM_FLAG_BAD;
213209
fdp->event_type |= ACL_EVENT_XCPT;
214-
fdp->fdidx_ready = ev->fdcnt_ready;
215-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
210+
fdp->fdidx_ready = ev->ready_cnt;
211+
ev->ready[ev->ready_cnt++] = fdp;
216212
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_READ)) {
217213
if (ACL_VSTREAM_BFRD_CNT(fdp->stream) > 0) {
218-
fdp->stream->sys_read_ready = 0;
214+
fdp->stream->read_ready = 0;
219215
fdp->event_type = ACL_EVENT_READ;
220-
fdp->fdidx_ready = ev->fdcnt_ready;
221-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
222-
} else if (fdp->stream->sys_read_ready
223-
&& !fdp->listener)
224-
{
216+
fdp->fdidx_ready = ev->ready_cnt;
217+
ev->ready[ev->ready_cnt++] = fdp;
218+
} else if (fdp->stream->read_ready && !fdp->listener) {
225219
fdp->event_type = ACL_EVENT_READ;
226-
fdp->fdidx_ready = ev->fdcnt_ready;
227-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
220+
fdp->fdidx_ready = ev->ready_cnt;
221+
ev->ready[ev->ready_cnt++] = fdp;
228222
} else if (fdp->r_ttl > 0 && ev->present > fdp->r_ttl) {
229223
fdp->event_type = ACL_EVENT_RW_TIMEOUT;
230-
fdp->fdidx_ready = ev->fdcnt_ready;
231-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
224+
fdp->fdidx_ready = ev->ready_cnt;
225+
ev->ready[ev->ready_cnt++] = fdp;
232226
} else
233227
nwait++;
234228
} else if ((fdp->flag & EVENT_FDTABLE_FLAG_WRITE)) {
235229
if (fdp->w_ttl > 0 && ev->present > fdp->w_ttl) {
236230
fdp->event_type = ACL_EVENT_RW_TIMEOUT;
237-
fdp->fdidx_ready = ev->fdcnt_ready;
238-
ev->fdtabs_ready[ev->fdcnt_ready++] = fdp;
231+
fdp->fdidx_ready = ev->ready_cnt;
232+
ev->ready[ev->ready_cnt++] = fdp;
239233
} else
240234
nwait++;
241235
} else
@@ -257,10 +251,10 @@ void event_thr_fire(ACL_EVENT *ev)
257251
if (ev->fire_begin)
258252
ev->fire_begin(ev, ev->fire_ctx);
259253

260-
for (i = 0; i < ev->fdcnt_ready; i++) {
261-
fdp = ev->fdtabs_ready[i];
254+
for (i = 0; i < ev->ready_cnt; i++) {
255+
fdp = ev->ready[i];
262256

263-
/* ev->fdtabs_ready[i] maybe be set NULL by timer callback */
257+
/* ev->ready[i] maybe be set NULL by timer callback */
264258
if (fdp == NULL || fdp->stream == NULL)
265259
continue;
266260

lib_acl/src/event/events.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ struct ACL_EVENT {
9696
/* 当前套接字个数 */
9797
int fdcnt;
9898
/* 事件循环时准备好的套接字个数 */
99-
int fdcnt_ready;
99+
int ready_cnt;
100100
/* 套接字事件对象表集合 */
101101
ACL_EVENT_FDTABLE **fdtabs;
102102
/* 准备好的套接字事件对象表集合 */
103-
ACL_EVENT_FDTABLE **fdtabs_ready;
103+
ACL_EVENT_FDTABLE **ready;
104104
/* 本进程中最大套接字值 */
105105
ACL_SOCKET maxfd;
106106

lib_acl/src/event/events_epoll_thr.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ static void event_loop(ACL_EVENT *eventp)
441441

442442
THREAD_UNLOCK(&event_thr->event.tm_mutex);
443443

444-
eventp->fdcnt_ready = 0;
444+
eventp->ready_cnt = 0;
445445

446446
if (eventp->present - eventp->last_check >= eventp->check_inter) {
447447
eventp->last_check = eventp->present;
@@ -451,7 +451,7 @@ static void event_loop(ACL_EVENT *eventp)
451451
if (event_thr_prepare(eventp) == 0) {
452452
THREAD_UNLOCK(&event_thr->event.tb_mutex);
453453

454-
if (eventp->fdcnt_ready == 0)
454+
if (eventp->ready_cnt == 0)
455455
sleep(1);
456456

457457
nready = 0;
@@ -460,7 +460,7 @@ static void event_loop(ACL_EVENT *eventp)
460460

461461
THREAD_UNLOCK(&event_thr->event.tb_mutex);
462462

463-
if (eventp->fdcnt_ready > 0)
463+
if (eventp->ready_cnt > 0)
464464
delay = 0;
465465
}
466466

@@ -485,21 +485,21 @@ static void event_loop(ACL_EVENT *eventp)
485485
if ((bp->events & EPOLLIN) != 0) {
486486
if ((fdp->event_type & ACL_EVENT_READ) == 0) {
487487
fdp->event_type |= ACL_EVENT_READ;
488-
fdp->fdidx_ready = eventp->fdcnt_ready;
489-
eventp->fdtabs_ready[eventp->fdcnt_ready] = fdp;
490-
eventp->fdcnt_ready++;
488+
fdp->fdidx_ready = eventp->ready_cnt;
489+
eventp->ready[eventp->ready_cnt] = fdp;
490+
eventp->ready_cnt++;
491491
}
492492
if (fdp->listener)
493493
fdp->event_type |= ACL_EVENT_ACCEPT;
494-
fdp->stream->sys_read_ready = 1;
494+
fdp->stream->read_ready = 1;
495495
} else if ((bp->events & EPOLLOUT) != 0) {
496496
fdp->event_type |= ACL_EVENT_WRITE;
497-
fdp->fdidx_ready = eventp->fdcnt_ready;
498-
eventp->fdtabs_ready[eventp->fdcnt_ready++] = fdp;
497+
fdp->fdidx_ready = eventp->ready_cnt;
498+
eventp->ready[eventp->ready_cnt++] = fdp;
499499
} else if ((bp->events & (EPOLLERR | EPOLLHUP)) != 0) {
500500
fdp->event_type |= ACL_EVENT_XCPT;
501-
fdp->fdidx_ready = eventp->fdcnt_ready;
502-
eventp->fdtabs_ready[eventp->fdcnt_ready++] = fdp;
501+
fdp->fdidx_ready = eventp->ready_cnt;
502+
eventp->ready[eventp->ready_cnt++] = fdp;
503503
}
504504
}
505505

@@ -536,7 +536,7 @@ static void event_loop(ACL_EVENT *eventp)
536536
timer_fn(ACL_EVENT_TIME, eventp, timer_arg);
537537
}
538538

539-
if (eventp->fdcnt_ready > 0)
539+
if (eventp->ready_cnt > 0)
540540
event_thr_fire(eventp);
541541
}
542542

0 commit comments

Comments
 (0)