unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: David Thompson <dave.thompson2@verizon.net>
To: help-gnu-emacs@gnu.org
Subject: Re: How to exit out of a function ? what is try-catch-throw in terms of Program Counter
Date: Sun, 02 Dec 2007 23:20:27 GMT	[thread overview]
Message-ID: <t70tk3p5q8croe29ilsqioonbi055behr1@4ax.com> (raw)
In-Reply-To: 13it94l8vrcqfac@corp.supernews.com

On Mon, 05 Nov 2007 06:07:25 +0100, "Alf P. Steinbach"
<alfps@start.no> wrote:

> * David Thompson:
> > On Sun, 21 Oct 2007 00:55:53 +0200, "Alf P. Steinbach"
> > <alfps@start.no> wrote:

> >> The closest equivalent in C would be a 'longjmp'.  However, a C++ 
> >> exception is more limited, in that it will only jump up the call chain, 
> > 
> > C longjmp/setjmp also is only guaranteed to work up the stack; the
> > fact that _some_ implementations can work cross-stack and in
> > particular cross-thread is not standard nor portable.
> 
> So?
> 
> But also, what on Earth do you mean by a cross-thread longjmp?  I 
> implemented coroutines in terms of longjmp at the time that was popular, 
> so the concepts involved are not unfamiliar to me.  Yet I fail to 
> envision what you could be talking about, especially as "fact".  I think 

IME 'coroutine' has been used for several slightly different concepts,
but if you mean the one of separate threads of control passing CPU
ownership often along with data anytime they choose, also known more
specifically as cooperative/nonpreemptive threading/tasking, yes. I
think you are agreeing that it did actually work, because 'restoring'
PC and SP (or equivalents) was enough; but I am pointing out it wasn't
and isn't _required_ to work that way.

> perhaps you're talking about restoring the full context (registers etc) 
> of a moment in a thread's execution?
> 
IME a cooperative switch itself doesn't need to save and restore other
state, as the language mechanism(s) e.g. 'call yield' handle it. Or
for cache-y things it happens automatically, or mostly automatically.

- formerly david.thompson1 || achar(64) || worldnet.att.net

  parent reply	other threads:[~2007-12-02 23:20 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-20 20:45 How to exit out of a function ? what is try-catch-throw in terms of Program Counter gnuist006
2007-10-20 20:57 ` gnuist006
2007-10-20 22:55 ` Alf P. Steinbach
2007-10-23 18:06   ` gnuist006
2007-10-23 19:53     ` Alf P. Steinbach
2007-11-04 23:02   ` David Thompson
2007-11-05  5:07     ` Alf P. Steinbach
2007-11-05  5:59       ` Alf P. Steinbach
2007-12-02 23:20       ` David Thompson [this message]
2007-12-02 23:51         ` Alf P. Steinbach
2007-10-21  1:08 ` Jim Langston
2007-10-21  2:30 ` Keith Thompson
2007-10-21 10:44   ` Kenny McCormack
2007-10-21 10:55     ` santosh
2007-10-21 12:26       ` Richard Heathfield
2007-10-21 22:35       ` Mark McIntyre
2007-10-21 12:09     ` Malcolm McLean
2007-10-21 15:23       ` Kenny McCormack
2007-10-21 15:54         ` santosh
2007-10-21 17:39         ` Malcolm McLean
2007-10-21 21:53           ` Kenny McCormack
2007-10-21  8:03 ` Malcolm McLean
2007-10-21 16:07 ` abhy
2007-10-21 17:43   ` santosh
2007-10-23  9:04 ` Joel Yliluoma
2007-10-23 16:33 ` Stefan Monnier
2007-10-23 16:44   ` gnuist006
2007-10-23 16:45   ` Victor Bazarov
2007-10-24  1:06     ` Stefan Monnier
2007-10-23 16:54   ` gnuist006
2007-10-23 17:14     ` Alf P. Steinbach
2007-10-24  1:09     ` Stefan Monnier
2007-10-24  0:02   ` Joel Yliluoma

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=t70tk3p5q8croe29ilsqioonbi055behr1@4ax.com \
    --to=dave.thompson2@verizon.net \
    --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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).