X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DCC3C3857014
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1686275077;
	bh=QvKsP/NU64nK//INgB5vhI8NCuC8sy2S9+VzCNUkHu0=;
	h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=TnpICiD75qa5jgMFYmy3MoNHFq4DNXhz9Kn2GiFmji3h0h1GbuQVHnIwGrslnKDxA
	 0vHkBR4zIkn9F1b3TeqAQyXJo6tA68fr5bsMXV9klDobxuERER/3/uwSA2Cq2oSbHD
	 Y3OabESC/ypEmMIbRgPu88ItoJUqFgt9iebIRpiQ=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E80593858C20
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1686275059; x=1688867059;
 h=in-reply-to:content-transfer-encoding:content-disposition
 :mime-version:references:mail-followup-to:reply-to:message-id
 :subject:to:date:from:sender:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=Xvfd4NozHWrJousnD8p4ll/y8XgLnn0LLuRlr8tByic=;
 b=V83+19ATvUwg4eXMJEm5PPg/Sz4/TsHPRrhwJKqtHpRa8G0e7frmZKnxTwOgfB5Ez6
 g8flGF//8HTC5BjpIL+gj/uE/P4hDM8uJvQztbVHBVOYaETPLA2EuZiTPztjS/guxS5B
 2q2EI+TmcrP3O3vGC1r7kvwF6UU38F20suOepYZBjxfHVgxDesGtSixQScjDNW1oByQL
 OQ8McEH/oZTbdne8f/GSqGghzPbQ6dMVIMshXEktWQAjRcrTSTsyhY54SFUF0rPbrfLD
 5px50j5I/FdJYIIqAQhN71elpxKGsdwhaJXd9qr+I3v4eimNXchqwSHpVOpJKn3iHDtf
 5N3g==
X-Gm-Message-State: AC+VfDwI6bFXxCYovmvNz3AHzapcJktaJ7x/K8zqCg8n3viowsl3jxzZ
 vRCyAKprmPxjlIgPGArrT/M6gNRg5/s=
X-Google-Smtp-Source: ACHHUZ5WiKJFBDlymLG+1FaPwddgVZL7GFjTPmiOOb1BRxYbmdGr/ofgQ23qjj2pYD/MDKKKb3SHCw==
X-Received: by 2002:a17:902:d4c7:b0:1ab:29bc:bd87 with SMTP id
 o7-20020a170902d4c700b001ab29bcbd87mr32124plg.35.1686275059516; 
 Thu, 08 Jun 2023 18:44:19 -0700 (PDT)
X-Google-Original-From: Duncan Roe <dunc@slk15.local.net>
Date: Fri, 9 Jun 2023 11:44:15 +1000
To: cygwin@cygwin.com
Subject: Re: Memory Barriers at pthread using CYGWIN
Message-ID: <ZIKD70cnYSPK3kfC@slk15.local.net>
Mail-Followup-To: cygwin@cygwin.com
References: <CAPxKPA79MOTXkUEKUPFGSWdHr_O93Q44kXs_CbN=YoxfpqJhcw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAPxKPA79MOTXkUEKUPFGSWdHr_O93Q44kXs_CbN=YoxfpqJhcw@mail.gmail.com>
X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT,
 FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,
 RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP,
 T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
 server2.sourceware.org
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Duncan Roe via Cygwin <cygwin@cygwin.com>
Reply-To: duncan_roe@optusnet.com.au
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: cygwin-bounces+archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id 3591j3bs003423

On Thu, Jun 08, 2023 at 05:29:59PM +0300, cygwin wrote:
> Hi,
>
> I wrote a simple test for pthread_barrier_wait. it won't work as expected.
>
> result should be
>
> r1 = 1, r2 = 1
>
> Thanks,
> Mümin

> cmake_minimum_required(VERSION 3.26)
>
> project(test)
>
> set(CMAKE_CXX_STANDARD 14)
> set(CMAKE_CXX_STANDARD_REQUIRED ON)
> set(CMAKE_CXX_EXTENSIONS OFF)
>
>
> add_definitions(-D__POSIX_VISIBLE=200112 -D_POSIX_C_SOURCE=200112)
>
> add_executable(test main.cpp)
>
> target_link_libraries(test pthread)

> #include <stdio.h>
> #include <pthread.h>
>
> int x = 0;
> int y = 0;
> int r1 = 0;
> int r2 = 0;
>
> pthread_barrier_t barrier;
>
> void* thread1(void* arg) {
>     y = 1;
>     pthread_barrier_wait(&barrier);  // Memory barrier
>     r1 = x;
>     return NULL;
> }
>
> void* thread2(void* arg) {
>     x = 1;
>     pthread_barrier_wait(&barrier);  // Memory barrier
>     r2 = y;
>     return NULL;
> }
>
> int main() {
>     pthread_t t1, t2;
>
>     pthread_barrier_init(&barrier, NULL, 2);
>
>     pthread_create(&t1, NULL, thread1, NULL);
>     pthread_create(&t2, NULL, thread2, NULL);
>
>     pthread_join(t1, NULL);
>     pthread_join(t2, NULL);
>
>     printf("r1 = %d, r2 = %d\n", r1, r2);
>
>     pthread_barrier_destroy(&barrier);
>
>     return 0;
> }

WFFM (compiled as a C program)

Cheers ... Duncan.

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

