Author: tridge Date: 2005-11-14 02:45:28 +0000 (Mon, 14 Nov 2005) New Revision: 11712
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11712 Log: avoid changing the fde flags unless really needed Modified: branches/SAMBA_4_0/source/lib/stream/packet.c Changeset: Modified: branches/SAMBA_4_0/source/lib/stream/packet.c =================================================================== --- branches/SAMBA_4_0/source/lib/stream/packet.c 2005-11-14 01:50:55 UTC (rev 11711) +++ branches/SAMBA_4_0/source/lib/stream/packet.c 2005-11-14 02:45:28 UTC (rev 11712) @@ -43,7 +43,7 @@ void *private; struct fd_event *fde; BOOL serialise; - BOOL processing; + int processing; BOOL recv_disable; BOOL nofree; @@ -209,6 +209,8 @@ DATA_BLOB blob; if (pc->processing) { + EVENT_FD_NOT_READABLE(pc->fde); + pc->processing++; return; } @@ -329,15 +331,16 @@ pc->packet_size = 0; if (pc->serialise) { - EVENT_FD_NOT_READABLE(pc->fde); - pc->processing = True; + pc->processing = 1; } status = pc->callback(pc->private, blob); - if (pc->serialise) { - EVENT_FD_READABLE(pc->fde); - pc->processing = False; + if (pc->processing) { + if (pc->processing > 1) { + EVENT_FD_READABLE(pc->fde); + } + pc->processing = 0; } if (!NT_STATUS_IS_OK(status)) {
