Commit Graph

74 Commits (1531b3770a7cf7373d15fedd239c5331b99342d1)

Author SHA1 Message Date
v9v 1531b3770a
Fix for multiple users on the same machine
The issue and fix are described in https://github.com/tmux-plugins/tmux-continuum/issues/16 .

Without this change, tmux-continuum works only for one tmux server on the machine. In a multi-user environment (e.g. a shared server), when multiple users are running their own tmux servers, this means that tmux-continuum works only for one of the users.

This change enables tmux-continuum for one tmux server per user instead of one tmux server per machine.
2020-02-29 01:37:58 +01:00
Bruno Sutic 7f99beee1d
Update changelog 2019-07-13 17:07:06 +02:00
Bruno Sutic 9f3cbc7e12
Merge pull request #61 from v9v/fix-autosave-race
Fix race condition in autosave
2019-07-13 17:04:13 +02:00
v9v ff63f86678
continuum_save.sh: Improvements to locking code
* moved the locking to a separate function "acquire_lock"
* changed $[ ] to $(( )), for consistency with the rest of the file
* taking the lock only after checking all other preconditions (they are non-mutating and thread-safe)
2019-07-13 14:16:42 +02:00
v9v 3917404668
Fix race condition in saving lock
Two consecutive calls to "date +%s" can return different values. Call "date" only once and reuse the result.
2019-07-09 10:46:56 +02:00
v9v 800488ca6f
Replace flock with mkdir
flock is not supported on MacOS.

`mkdir` locks have a drawback: they are not cleaned up automatically. If the lock owner crashed before cleaning up the lock, the directory will stay in the filesystem and the lock will be never acquired by someone else. To avoid that, we create temporary locks (the lockdir name changes every 100 seconds). We grab two lock (N and N+1) to avoid the case where process A grabs lock N and process B grabs lock N+1 and both enter the critical section.
2019-07-08 15:58:42 +02:00
v9v 10e612d72c
Handle missing flock
If flock is not installed, fall back to the thread-unsafe version.
2019-07-05 19:33:12 +02:00
v9v 721890d22f Fix race condition in autosave
Fixes the case where multiple tmux sessions call auto-save at the same time, which occasionally results in multiple instances of save_all() running in parallel and causing issues like #3 and tmux-plugins/tmux-resurrect#294.

The sequence in main() is:
1. Check enough_time_since_last_run_passed
2. Save
3. Update last_save_timestamp.

The race here is:
* process A finishes step 1 and is busy with step 2. The timestamp is not updated yet.
* process B comes to step 1, sees the old timestamp and proceeds to step 2, too.
2019-07-04 20:21:02 +02:00
Bruno Sutic 100498d0c2
Update README.md 2019-04-19 12:46:39 +02:00
Bruno Sutic 10c6d73791
Merge pull request #58 from diegoximenes/fix/automatic_restore
Fix automatic restore.
2019-03-04 14:54:54 +01:00
Diego Ximenes Mendes 509e898da6 Fix automatic restore. 2019-03-02 09:49:42 -03:00
Bruno Sutic 4e2279688d
Fix auto-restore feature
Credit to @badjware for the solution

Fixes $45, #52, #54
2019-02-07 13:32:58 +01:00
Bruno Sutic 90f4a00c41 Merge pull request #41 from neynt/master
Make user systemd dir if it doesn't exist
2017-10-19 12:18:10 +02:00
neynt 6ed3078f47 Make user systemd dir if it doesn't exist 2017-10-14 11:25:00 -04:00
Bruno Sutic 63677088d9 Merge pull request #38 from JakobGM/patch-1
Use correct name for tmux configuration file
2017-09-29 14:50:59 +02:00
Jakob Gerhard Martinussen ed7669eadf Use correct name for tmux configuration file
Parts of the readme referred to `tmux.conf` instead of `.tmux.conf`. This has now been corrected.
2017-09-29 11:43:24 +02:00
Bruno Sutic 499b6a7e4e Merge pull request #17 from jarosser06/rm_hardcoded_home
Replaced hardcoded home directory in Systemd ExecStop with HOME variable
2016-01-23 16:57:14 +01:00
Jim Rosser 438e50d54f replaced hardcoded home directory in Systemd ExecStop with HOME variable 2016-01-23 09:39:06 -06:00
Pete Peteches McCabe d21e477f16
Added extra docs explaining systemd ExecStart quirks. 2016-01-09 16:28:49 +01:00
Pete Peteches McCabe 3ed7db77f2
Re-named tmux variable to maintain consistency. 2016-01-09 16:28:48 +01:00
Pete Peteches McCabe 328d070787
Removing debug opts. 2016-01-09 16:28:47 +01:00
Pete Peteches McCabe 409726b3f9
Updated docs. 2016-01-09 16:28:46 +01:00
Pete Peteches McCabe 53853713eb
Swiched default command to new-session -d
- need the -d to start the server correctly as it does not have an emulator to
  attach the session to.
2016-01-09 16:28:45 +01:00
Pete Peteches McCabe fb52a173b8
Switched to forking to better represent server nature of tmux.
- Also added RestartSec option to fix minor issues with restarts trying to
  start the server before it had fully shutdown.
2016-01-09 16:28:44 +01:00
Pete Peteches McCabe b495ea2912
set default tmux start command to new-session 2016-01-09 16:28:44 +01:00
Pete Peteches McCabe 4b84886e86
Corrected some spelling. 2016-01-09 16:28:43 +01:00
Pete Peteches McCabe 5c252cfba9
Added docs for systemd usage. 2016-01-09 16:28:42 +01:00
Pete Peteches McCabe 65d627af30
Removed automatic restore as screwed pane organisation.
- this caused issues with the restore missing some processes and putting
  others in the wrong place.

- I think this may need some work with the tmux-resurrect plugin to fix if auto
  restore is to be used.
2016-01-09 16:28:41 +01:00
Pete Peteches McCabe a9cbf68546
Added defaults for tmux start command variable. 2016-01-09 16:28:40 +01:00
Pete Peteches McCabe 05a4a827e5
initial stab at systemd support for tmux-continuum 2016-01-09 16:28:39 +01:00
Bruno Sutic 15649e9d07 Merge pull request #15 from tmux-plugins/continuum_status
#{continuum_status} status line interpolation
2015-12-26 23:51:55 +01:00
Bruno Sutic d0cebe0804
Continuum status 2015-11-29 18:36:13 +01:00
Bruno Sutic 460350fa36
Mention cygwin support in the readme 2015-10-08 18:46:50 +02:00
Bruno Sutic 186c2b9e9b
Move all docs to 'docs/' dir 2015-10-08 18:44:32 +02:00
Bruno Sutic 4ca58931cc
Readme update 2015-10-08 18:40:24 +02:00
Bruno Sutic bc202971db
Extract docs to separate files 2015-10-08 18:38:27 +02:00
Bruno Sutic 7d875dfabe
Update plugin installation instructions 2015-08-10 20:35:34 +02:00
Bruno Sutic 46e0e00234
v3.1.0 2015-03-14 15:56:37 +01:00
Bruno Sutic d6ac017d1d
Bugfix: do not count tmux source-file as tmux process
Do not count `tmux source-file .tmux.conf` as a tmux process when checking if
other tmux server is running.

Previously, this caused interpolation command not to be inserted into
`status-right` because `tmux source-file` was falsely detected as another tmux
server.
2015-03-14 15:55:00 +01:00
Bruno Sutic f821d353ea
Bugfix: "auto restore" feature not working on tmux 1.9a 2015-02-20 23:20:10 +01:00
Bruno Sutic bdc47273d3
Properly quote scripts 2015-02-20 15:48:36 +01:00
Bruno Sutic 886b373dcd
v3.0.0 2015-02-20 14:58:30 +01:00
Bruno Sutic 0d68c0cdce
Mention plugin rename in the readme 2015-02-20 14:58:12 +01:00
Bruno Sutic 72e6bd7f9a
Update readme 2015-02-20 14:15:43 +01:00
Bruno Sutic 20a83738c0
Rename the plugin to 'tmux-continuum' 2015-02-20 13:38:09 +01:00
Bruno Sutic 7f0e7268a6
v2.2.0 2015-02-20 02:59:47 +01:00
Bruno Sutic e384ce1040
Document tmux multi-server behavior in the readme 2015-02-20 02:59:15 +01:00
Bruno Sutic c720876da0
Check if auto-save interpolation present before adding it 2015-02-20 02:06:24 +01:00
Bruno Sutic fb641881c2
Don't start auto-saving if another tmux server is running 2015-02-20 02:05:58 +01:00
Bruno Sutic 297e5b6993
Improve initial plugin save delay 2015-02-20 00:56:48 +01:00