delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/04/15/06:49:26

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=0.9 required=5.0 tests=BAYES_50,TW_SG
X-Spam-Check-By: sourceware.org
X-VirusChecked: Checked
X-Env-Sender: grzegorz DOT sikorski AT motorolasolutions DOT com
X-Msg-Ref: server-15.tower-161.messagelabs.com!1302864549!36076701!1
X-StarScan-Version: 6.2.9; banners=-,-,-
MIME-Version: 1.0
Subject: IPC and pthread condition variable bug
Date: Fri, 15 Apr 2011 11:48:45 +0100
Message-ID: <1F22C5AA2CC2C14F943CBEAAF3E385D4020C6A4E@zuk35exm66.ds.mot.com>
From: "Sikorski Grzegorz-VBFM67" <grzegorz DOT sikorski AT motorolasolutions DOT com>
To: <cygwin AT cygwin DOT com>
X-CFilter-Loop: Reflected
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.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

Hello,

I have tried to build an application with queues in UNIX flavor (using msgg=
et API). I have successfully ran cygwin server and enabled IPC. The program=
 works if I use 2-3 queues to send messages between threads (single thread =
reads from one queue, multiple threads can write to any queue). Although if=
 I try to create more than 3 queues, the application behaves very strange -=
 some read queue operations (msgrcv without IPC_NOWAIT flag set) fail rando=
mly (returns success even if there is no message in the queue or returns un=
defined errors).

I also tried to implement my own IPC, without cygwin server IPC. The code, =
which has been successfully tested on Solaris 5.10 platform and runs there =
normally, under cygwin fails randomly. I have investigated that the problem=
 is with pthread condition variables and timedout wait: pthread_cond_wait a=
nd pthread_cond_timedwait returns undefined values (none of valid error cod=
es). This situation occurs if I operate on many condition variables (more t=
han 3). If I use only 3 condition variables, there is no errors and my IPC =
works absolutely fine.

Best regards,
Grzegorz Sikorski
Astro Infrastructure
VPM QUICC Team
+48122988863
grzegorz DOT sikorski AT motorolasolutions DOT com
=A0
Motorola Polska Electronics=A0 Sp.z.o.o
Bobrzynskiego 46,=20
30-381 Krakow, Poland
KRS 0000146875 - Poland
VAT No: PL6772135826
Share capital: 4,600,000 PLN=A0=20
Details of Motorola's subsidiaries in the EU/EEA can be found at: v www.mot=
orolasolutions.com/XU-EN/About/Subsidiaries=20
=20


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

- Raw text -


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