From: <tomas@tuxteam.de>
To: help-gnu-emacs@gnu.org
Subject: Re: try-this-for ?
Date: Thu, 18 Jan 2018 10:27:24 +0100 [thread overview]
Message-ID: <20180118092724.GA29536@tuxteam.de> (raw)
In-Reply-To: <86d1277u37.fsf@zoho.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thu, Jan 18, 2018 at 03:56:44AM +0100, Emanuel Berg wrote:
[...]
> Right, I suspected that... so what I ask for
> perhaps cannot be done because of the very
> architecture? There is no preemption,
> only collaboration?
There be dragons. Or dragons and mad cows.
Up to now, Emacs Lisp's model of concurrency seems to
be explicitly cooperative. The two spots in the manual
to start with ("Special Events" [0] and, in a more
modern Emacs version "Threads" [1] hint at this. Currently
it seems to be a basic limitation of the interpreter,
although the verbiage in [1] suggests that there is an
active will to change that.
So if you want to get "signals" right deep in your
search for the next Mersenne prime, you'll have to
embed some form of "yield" [2] in your calculation.
But if you alre already "yielding" at strategic spots
in your Mersenne quest, you can as well consult your
watch (i.e. give the timer functions a chance to run),
so you don't need signals, threads or other exotica
for that [3].
Believe me, this is the easier part, and if you plan
carefully and develop some sense of aesthetics it comes
about pretty organically. The dragons are elsewhere.
Cows? I never said anything about them, oh, no.
Cheers
[0] https://www.gnu.org/software/emacs/manual/html_node/elisp/Special-Events.html#Special-Events
[1] http://git.savannah.gnu.org/cgit/emacs.git/tree/doc/lispref/threads.texi?h=emacs-26
[2] https://en.wikipedia.org/wiki/Generator_(computer_programming)
[3] What do I need threads for, then? For one, if you want
to wield more computing power in one process: remember,
the box you bought has at least two cores, and each core
not dedicated to Emacs is one core wasted.
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlpgaHwACgkQBcgs9XrR2kaDXwCdGWfdXn/4Ymm83RKSwzX8/7hl
4IoAn3ZiADkHIlI+YeU2YJV2dj6XdEsw
=3VTm
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2018-01-18 9:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-17 21:04 try-this-for ? Emanuel Berg
2018-01-17 23:50 ` John Mastro
2018-01-18 2:08 ` Bob Newell
[not found] ` <mailman.7535.1516241346.27995.help-gnu-emacs@gnu.org>
2018-01-18 2:52 ` Emanuel Berg
[not found] ` <mailman.7534.1516233062.27995.help-gnu-emacs@gnu.org>
2018-01-18 2:56 ` Emanuel Berg
2018-01-18 9:27 ` tomas [this message]
[not found] ` <mailman.7540.1516267658.27995.help-gnu-emacs@gnu.org>
2018-01-18 12:00 ` Emanuel Berg
2018-01-18 12:03 ` Emanuel Berg
2018-01-18 12:11 ` Emanuel Berg
2018-01-18 12:43 ` tomas
2018-01-18 15:14 ` Eli Zaretskii
2018-01-18 15:23 ` tomas
[not found] ` <mailman.7544.1516279427.27995.help-gnu-emacs@gnu.org>
2018-01-18 12:59 ` Emanuel Berg
2018-01-18 13:16 ` tomas
[not found] ` <mailman.7546.1516281409.27995.help-gnu-emacs@gnu.org>
2018-01-18 22:44 ` Emanuel Berg
2018-01-19 8:38 ` tomas
[not found] ` <mailman.7613.1516351115.27995.help-gnu-emacs@gnu.org>
2018-01-19 8:55 ` Emanuel Berg
2018-01-19 9:25 ` tomas
[not found] ` <mailman.7614.1516353949.27995.help-gnu-emacs@gnu.org>
2018-01-19 10:47 ` Emanuel Berg
2018-01-19 11:22 ` tomas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180118092724.GA29536@tuxteam.de \
--to=tomas@tuxteam.de \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.