[3096] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

Re: [PATCH 0/2] Asynchronous logging for barnowl, revised further

daemon@ATHENA.MIT.EDU (David A Benjamin)
Mon May 30 22:12:09 2011

Date: Mon, 30 May 2011 22:12:05 -0400 (EDT)
From: David A Benjamin <davidben@MIT.EDU>
To: Adam Glasgall <glasgall@mit.edu>
cc: barnowl-dev@mit.edu
In-Reply-To: <1306630076-31258-1-git-send-email-glasgall@mit.edu>

LGTM, modulo stylistic stuff handled out-of-band.

David

On Sat, 28 May 2011, Adam Glasgall wrote:

> [Changes since last revision: addressed Sam's issue by removing the
> redundant write to stdout and fixed some style nits from -c barnowl]
>
> Currently, when message logging is enabled, barnowl writes logs
> synchronously on the same thread as the UI, network I/O, and
> everything else. This results in an extremely unpleasant user
> experience when writing a log entry takes a long time (e.g. when
> logpath/classlogpath point to a directory in AFS and the fileserver
> for that volume is down), as the UI freezes until the kernel gives up
> and returns an error, during which time more messages have come in to
> be processed and logged, which themselves cause the UI to freeze, and
> so on. The user usually cannot even kill the frozen barnowl, as it's
> probably stuck in uninterruptible sleep.
>
> Now that we have g_main_loop merged, it's possible for us to do
> better. This patch moves log-entry writing off onto a background
> thread running running its own GMainLoop; instead of writing logs
> itself, the main thread posts tasks to it.
>
> This branch is also available for review on my github at
> https://github.com/aglasgall/barnowl/, branch 'async_logging_v5'.
>
>
> Adam Glasgall
> --
> Net delta:
> logging.c |  245 +++++++++++++++++++++++++++++++++++++++++++-----------------
> owl.c     |    6 +-
> select.c  |    8 +-
> 3 files changed, 184 insertions(+), 75 deletions(-)
>
>

home help back first fref pref prev next nref lref last post