On Mon, Feb 25, 2013 at 09:27:24PM -0300, Thiago Padilha wrote:
> Command that provides features for all synchronization needs in tmux scripts.
I can't apply this with git-apply.
> 1- When unlocking waiting panes, I guess it should be done in the
> event loop, however I was getting random crashes when doing that, so
Yes it should. I'd have to see what you tried to say why it was crashing.
> now everything is done synchronously inside the command.
> 2- It must take action when a pane that is holding the monitor exits,
> but I couldn't figure out how to do it
In the server loop.
> +enum monitor_options {
This should go in tmux.h
Note also in the general case you need to read OpenBSD style(9):
http://www.openbsd.org/cgi-bin/man.cgi?query=style&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
No C99 comments, no static functions, etc.
> + MONITOR_ENQUEUE = 1,
> + // if this is set, as soon as the pane acquires the lock, it will
> + // temporarily give up the lock rights and be put on the wait stack
> until
> + // a signal is received, at which point it will be put back in front
> + // of the lock queue again
> + MONITOR_WAIT = 2,
> + MONITOR_SIGNAL = 4,
> + // if the pane is not holding the lock when it starts waiting for a
> signal,
> + // then this flag is set, which means that as soon as the the signal
> + // arrives, it will leave the wait stack and release the lock
> + MONITOR_RELEASE = 8
> +};
> +
> +// queue of panes, used for tracking panes waiting to lock the monitor, or to
> +// receive a signal from another pane
> +struct cmdq_node {
Again; in tmux.h, but why isn't this factored in to struct window_pane?
> +
> +// name, and the monitor node only exists while there's some pane using it
> +struct monitor_node {
This in tmux.h
> +
> + // monitor name
> + char *name;
> +
> + // client/pane id
> + int pane_id;
> +
> + // number of times the pane has locked the monitor.
> + int count;
> +
> + SIMPLEQ_HEAD(, cmdq_node) lock_queue; // panes waiting to lock the
> monitor
We use either TAILQ or SLIST, RB_TREE, etc. Not SIMPLEQ_HEAD.
Until I can mess around with this, I've superficial comments only.
-- Thomas Adam
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users