delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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 |
Message-ID: | <3E020B55.5000101@netcom.es> |
Date: | Thu, 19 Dec 2002 18:09:25 +0000 |
From: | Ignasi Villagrasa <gri AT netcom DOT es> |
Organization: | gri |
User-Agent: | Mozilla/5.0 (Windows; U; Windows NT 5.0; es-ES; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1 |
X-Accept-Language: | es-es |
MIME-Version: | 1.0 |
To: | cygwin AT cygwin DOT com |
Subject: | try/catch and mutithreading |
Hi everyone, I've got a problem migrating several C++ based server applications from Watcom 10.5 compiler to cygwin. The problem arises when diferent threads get into a try/catch block concurrently. Then cygwin forces me to include a semaphore out of try block to solve a concurrency conflict that I didn't have using Watcom 10.5, or I don't have now only avoiding the try/catch structure. Source code void A() { MySemaphore.Request(); try { } catch(...) { } catch(...) { } MySemaphore.Release() ; return; } works properly in multithreading, but void A() { try { MySemaphore.Request(); } catch(...) { } catch(...) { } MySemaphore.Release() ; return; } gives me a concurrent problem. Obviously without semaphores I get a concurrency error also. I use here the semaphore in order to investigate where in the code the problem arises. Normally I cannot use it because of performance problem. Here is Cygwin version I'm using: cygwin 1.3.12-2 gcc 2.95.3-5 gcc-mingw 3_1-20020516-1 I don't use pthreads emulation in order to maintain compatibility to previos versions. So I'm using for multithreading _beginthreadex familly funtions, the same that work using Watcom. Could anyone give me a hint ? Thanks in advance, Ignasi Villagrasa. GRI S.L. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |