delorie.com/archives/browse.cgi | search |
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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |