"Dr. Arne Babenhauserheide" <arne_...@web.de> writes:
> [[PGP Signed Part:Undecided]] > > Tim Cross <theophil...@gmail.com> writes: > >> Emacs' support for asynchronous operations is at best primitive. There >> is built-in support for calling processes asynchonously and >> there is some other development work to set the stage for adding threads, >> but I think general asynchronous processing inside Emacs is a long way >> off. A lot of how Emacs lisp works fundamentally lacks the low level >> control structures necessary to make data structures and operations on >> those structures thread safe. This means you have to work at a very low >> level in order to ensure code is thread safe and that simply isn't >> practical. Even defining the basic model for an asynchronous emacs lisp >> is non-trivial and once you have the model, you ahve to implement it. > > Maybe it could be possible to fire up a second Emacs and retrieve the > agenda-buffer? > Yes, I've seen people who have done things like that. They have their 'main' emacs instance running where they 'do stuff' and another instance running where they read mail, check their agenda/calendar or run other things which tend to 'block'. There are some issues with this approach though. Some of which are not obvious. - Emacs can consume a fair amount of memory. Running multiple instances can use a fair amount of memory. - Startup times make it less appealing as a 'run it up when you need it' solution. - You need to have an understanding of the interaction with various cache and other disk files Emacs uses to ensure each instance doesn't tread on the toes of the other. - A 'strategy' with regards to reverting buffers to file contents. Consider adding a todo in your agenda while at the same time, working on a related org file in the other instance. Provided you know the rules, can operate in an understood disciplined manner and have a system with sufficient resources, it certainly can be a viable approach. Personally, I took a different route. I keep the number of files which contribute to my agenda to a minimum and have an easy way to update/change that list. I can quickly switch agenda contexts depending on what I'm doing. For example, when I'm at work, I'm not interested in any of my 'home' tasks, events, etc. As a result, generation of various agenda views is fast and I don't need to wait. I do have an 'everything' context, so when I do need that, I can get a complete overview. It does take longer to generate and will block, but I rarely need it. My calendar.org file, which contains all my meetings is shared across all views so that I avoid 'double booking'. I do tend to put all meetings in Google calendar because it makes it easy to share them with other devices (tablet, phone, laptop, other people), but I use my icsorg script to import that into my calendar.org file.