]> git.ipfire.org Git - thirdparty/bird.git/commit
Workaround for stupid callback scheduler.
authorOndrej Zajicek <santiago@crfreenet.org>
Sun, 11 Oct 2009 16:56:16 +0000 (18:56 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Sun, 11 Oct 2009 16:56:16 +0000 (18:56 +0200)
commitea89da381fc682155e7d08d6ad3d4ac8aa5fe115
tree169955732d5886614af061e9472473b01fb8904c
parent7ea5b00f42bd3d1fdafb0be349e3ebbcdf3ea466
Workaround for stupid callback scheduler.

There is no reak callback scheduler and previous behavior causes
bad things during hard congestion (like BGP hold timeouts).

Smart callback scheduler is still missing, but main loop was
changed such that it first processes all tx callbacks (which
are fast enough) (but max 4* per socket) + rx callbacks for CLI,
and in the second phase it processes one rx callback per
socket up to four sockets (as rx callback can be slow when
there are too many protocols, because route redistribution
is done synchronously inside rx callback). If there is event
callback ready, second phase is skipped in 90% of iterations
(to speed up CLI during congestion).
lib/socket.h
proto/bgp/bgp.c
sysdep/unix/io.c