delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/04/25/10:49:50

X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: Eric Lilja <mindcooler AT gmail DOT com>
Subject: Re: Throwing c++ exception across threads
Date: Wed, 25 Apr 2007 16:49:05 +0200
Lines: 28
Message-ID: <f0npp0$jr$1@sea.gmane.org>
References: <f0no2t$pfq$1 AT sea DOT gmane DOT org> <017801c78746$855e2ab0$2e08a8c0 AT CAM DOT ARTIMI DOT COM>
Mime-Version: 1.0
User-Agent: Thunderbird 2.0.0.0 (Windows/20070326)
In-Reply-To: <017801c78746$855e2ab0$2e08a8c0@CAM.ARTIMI.COM>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Dave Korn wrote:
> On 25 April 2007 15:20, Eric Lilja wrote:
> 
>> When the user of the program connects to an irc server a thread is
>> spawned that handles communication with the irc server. Any messages are
>> displayed in an editbox. If a severe error occurs, an exception is
>> thrown. Will there be any problems if I catch these exceptions in the
>> main thread? The things is that the connection code may cause an
>> exception and I want to run that in the connection thread so the UI
>> doesn't freeze while it's waiting for an connection attempt to time-out
>> for instance.
> 
>   How exactly do you propose to "throw an exception across threads" anyway?
> You can't spawn a thread inside a try-catch block and expect that block to
> apply to the new thread....
> 
>     cheers,
>       DaveK

Right, I moved the connection code inside the thread func. There it 
checks for exceptions made during the connection and ends the thread 
(and displaying an error message) if one occurs. If one does not occur, 
it starts handling messages till the connection is closed or an 
exception occurs.

This seems to work without freezing.

- Eric


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019