Lars Henriksen 7b8b7f0548 Revert "Interrupt periodic save when launching process"
This reverts commit 0f3d198 (Interrupt periodic save when launching
process, 2017-09-08).

Stopping and starting periodic save when external/hook programs are run
causes deadlocks. The periodic save thread cannot be stopped/started at
will, but should be started once and run uninterrupted as long as
calcurse runs. Only if the configuration parameter is changed, must the
thread be stopped and possibly restarted.

The reasons are

- the start routine unconditionally starts a thread.
- the mechanism used to detect whether a thread is running or not, is
  designed to be used by the main calcurse thread only and with only one
  running thread of each kind (the thread ID of each running thread is
  kept in a variable; if the thread is not running, the variable has the
  main thread ID as value).

Any load hook will be run at the initial dataload, and the stop/start
calls will start a perodic save thread (this is true for the notify
thread as well). Later when threads are started, a second periodic save
thread is started (for the notify thread, a running thread is stopped
before restart).

When hooks are run by the periodic save thread, the stop call breaks
down, leading to two running save threads (if not the case already) and
subsequently to a deadlock when one thread tries to stop the other.

Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2020-07-26 10:31:33 -04:00
2019-06-06 20:57:48 -04:00
2014-07-28 13:12:42 +02:00
2020-03-27 18:59:20 -04:00
2020-01-30 19:22:23 +01:00
2020-06-13 10:56:15 -04:00
2015-04-12 17:32:44 +02:00
2020-07-19 08:19:55 -04:00
2020-01-30 19:22:23 +01:00
2020-03-27 18:59:20 -04:00
2020-01-30 19:22:23 +01:00
2011-03-03 12:21:16 +01:00

calcurse

Demo

Building

Install the following build dependencies. If your distro segments development files from core packages (i.e., *-devel or *-dev packages), you may need to install those as well:

  • gcc
  • automake
  • asciidoc
  • gettext with development files
  • ncurses with development files

If you are using a release tarball, the following commands can be used to build and install calcurse:

$ ./configure
$ make
$ make install

Note that make install needs to be run as root. When working on a Git checkout, you need to run ./autogen.sh before ./configure.

Package Overview

  • build-aux: auxiliary files for the build process
  • contrib: useful tools such as hooks or the CalDAV synchronization script
  • doc: detailed documentation in plain text and HTML
  • po: translations and i18n-related files
  • scripts: additional official scripts, such as calcurse-upgrade
  • src: the actual calcurse source files
  • test: test suite and test cases for calcurse

Authors

calcurse was originally authored by Frederic Culot and is currently maintained by Lukas Fleischer.

Of course, there are numerous other contributors. Check the Git commit log and the Thanks section in the manual for a list of people who have contributed by reporting bugs, sending fixes, or suggesting improvements.

Contributing and Donations

Patches, bug reports and other requests are always welcome! You can submit them to one of our mailing lists (check the patch submission guidelines for details) or via GitHub.

We are also extremely grateful for donations which help us continue developing calcurse as open source software and are used to cover recurring costs, such as for our servers. You can use https://calcurse.org/donate/ for a one-time payment. If you prefer another form of donation, do not hesitate to contact us!

Description
No description provided
Readme 5.2 MiB
Languages
C 65.7%
Shell 29.6%
Python 3.4%
M4 0.8%
Makefile 0.5%