Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #117659 > unrolled thread

A Java- / .NET-like monitor

Started byBonita Montero <Bonita.Montero@gmail.com>
First post2023-11-08 15:56 +0100
Last post2023-11-13 22:46 -0800
Articles 20 on this page of 259 — 9 participants

Back to article view | Back to comp.lang.c++


Contents

  A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-08 15:56 +0100
    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-08 19:31 +0100
      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-08 20:56 +0100
        Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-08 23:25 +0000
          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 05:33 +0100
            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 20:36 -0800
              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 05:38 +0100
                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 20:42 -0800
                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:08 +0100
                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:11 -0800
                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:12 -0800
                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:17 +0100
                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:35 -0800
                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:39 +0100
                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:40 -0800
                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:41 -0800
                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:42 +0100
                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:44 -0800
                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:44 -0800
                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:45 +0100
                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:48 -0800
                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:50 -0800
                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:58 -0800
                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 22:46 -0800
                                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:52 +0100
                                        Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-14 21:10 -0500
                                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-15 06:07 +0100
                                            Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-17 21:16 -0500
                                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-18 04:06 +0100
                                                Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-18 12:53 -0500
                                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-18 20:04 +0100
                                                  Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-18 19:24 +0000
                                                    Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-18 20:29 +0000
                                                      Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-18 21:46 +0000
                                                      Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-18 20:18 -0500
                                                      Re: A Java- / .NET-like monitor Michael S <already5chosen@yahoo.com> - 2023-11-24 01:14 +0200
                                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-23 21:35 -0800
                                                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-24 08:59 +0100
                                                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-24 01:17 -0800
                                                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-24 10:25 +0100
                                                              Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-24 15:59 +0000
                                                                Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-24 18:33 +0000
                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-24 15:39 -0800
                                                                    Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-25 00:08 +0000
                                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-24 16:27 -0800
                                                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-25 14:47 -0800
                                                                      Re: A Java- / .NET-like monitor "Fred. Zwarts" <F.Zwarts@HetNet.nl> - 2023-11-25 13:02 +0100
                                                                        Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-25 17:28 +0000
                                                                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-25 18:48 +0100
                                                                            Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-25 18:09 +0000
                                                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-25 13:12 +0100
                                                                    Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-25 18:10 +0000
                                                                      Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-25 19:30 +0000
                                                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-25 14:57 -0800
                                                                        Re: A Java- / .NET-like monitor Michael S <already5chosen@yahoo.com> - 2023-11-26 01:29 +0200
                                                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-25 15:56 -0800
                                                                          Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-26 13:54 +0100
                                                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-26 14:38 +0100
                                                                              Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-26 16:28 +0100
                                                                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-26 18:51 +0100
                                                                                  Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-26 20:27 +0100
                                                                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-26 14:38 -0800
                                                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-26 15:00 -0800
                                                                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 05:23 +0100
                                                                                      Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-27 10:38 +0100
                                                                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 10:55 +0100
                                                                                          Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-27 11:19 +0100
                                                                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 12:32 +0100
                                                                              Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-26 22:55 +0000
                                                                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 15:15 -0800
                                                                              Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-28 09:03 +0100
                                                                  Re: A Java- / .NET-like monitor David Brown <david.brown@hesbynett.no> - 2023-11-25 13:58 +0100
                                                    Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-18 20:09 -0500
                                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-19 05:58 +0100
                                                      Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-19 05:02 +0000
                                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-19 07:00 +0100
                                                          Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-19 06:08 +0000
                                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-19 12:05 +0100
                                                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-19 12:08 -0800
                                                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-19 12:11 -0800
                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-19 12:17 -0800
                                                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-20 13:26 +0100
                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-20 12:18 -0800
                                                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-21 10:25 +0100
                                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-23 21:38 -0800
                                                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-24 08:56 +0100
                                                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-24 01:22 -0800
                                                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-24 19:10 +0100
                                                                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-24 15:43 -0800
                                                                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-25 13:04 +0100
                                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-25 15:06 -0800
                                                                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-26 11:35 +0100
                                                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-26 15:45 -0800
                                                                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 05:24 +0100
                                                                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-26 22:22 -0800
                                                                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 08:57 +0100
                                                                                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 00:28 -0800
                                                                                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-27 09:34 +0100
                                                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 14:59 -0800
                                                                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 14:59 -0800
                                                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 15:19 -0800
                                                                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-28 15:13 -0800
                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-18 12:46 -0800
                                                    Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-18 21:47 +0000
                                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-18 14:02 -0800
                                                        Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-18 20:20 -0500
                                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-20 13:12 -0800
                                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 08:01 +0100
                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 08:01 +0100
                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:50 +0100
                    Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-11 17:45 -0500
                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-12 05:43 +0100
                        Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-12 05:02 +0000
                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-12 11:00 +0100
                            Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-12 17:18 +0000
                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-13 07:33 +0100
                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-13 07:47 +0100
                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 12:50 -0800
                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 06:20 +0100
                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 21:21 -0800
                                        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 07:44 +0100
                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 22:51 -0800
                                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 22:55 -0800
                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 08:00 +0100
                                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 08:07 +0100
                                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 23:08 -0800
                                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 23:07 -0800
                                          Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-14 15:18 +0000
                                            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 16:46 +0100
                                              Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-14 16:09 +0000
                                                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 17:41 +0100
                                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 18:41 +0100
                                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 12:25 -0800
                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 14:25 -0800
                                                  Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-14 22:50 +0000
                                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:07 -0800
                                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-15 05:57 +0100
                                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:08 -0800
                                                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-16 03:59 +0100
                                                        Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-16 15:02 +0000
                                                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-16 18:12 +0100
                                                            Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-16 17:45 +0000
                                                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-27 15:24 -0800
                            Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-12 17:53 +0000
                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-12 12:51 -0800
                              Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-12 19:33 -0500
                                Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-13 04:50 +0000
                                  Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-13 22:05 -0500
                                    Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-14 03:30 +0000
                                      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 22:35 -0800
                                      Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-14 20:26 -0500
                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:11 -0800
                                          Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-15 23:07 -0500
                                            Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-16 06:39 +0000
                                              Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-16 21:48 -0500
                                                Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-17 16:29 +0000
                                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-17 10:22 -0800
                                                  Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-17 18:37 +0000
                                                    Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-18 00:45 +0000
                                                      Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-18 02:30 +0000
                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-16 11:11 +0100
                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-13 07:35 +0100
                                Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-13 15:05 +0000
                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-13 16:36 +0100
                                    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-13 17:24 +0100
                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-12 12:48 -0800
                          Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-12 19:29 -0500
                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-12 16:44 -0800
                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-16 14:16 -0800
                            Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-13 04:48 +0000
                              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 14:32 -0800
                              Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-13 21:27 -0500
                                Re: A Java- / .NET-like monitor scott@slp53.sl.home (Scott Lurndal) - 2023-11-14 15:12 +0000
                                  Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-14 20:35 -0500
                              Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-13 21:58 -0500
                                Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-14 03:27 +0000
                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 21:28 -0800
                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 21:29 -0800
                                      Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-14 20:47 -0500
                                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:18 -0800
                                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:20 -0800
                                        Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-15 21:26 +0000
                                          Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-16 00:25 -0500
                                  Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-14 20:42 -0500
                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-28 15:32 -0800
                        Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-12 19:17 -0500
            Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-09 05:17 +0000
              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:18 -0800
                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:20 -0800
              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:19 +0100
                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:20 -0800
        Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-08 23:51 +0000
          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:10 -0800
        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 15:32 -0800
          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 05:35 +0100
            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:17 -0800
              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:22 +0100
                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:27 -0800
                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:29 +0100
                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:31 -0800
                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:34 +0100
                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:36 -0800
                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 06:40 +0100
                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:42 -0800
                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 07:32 +0100
                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 22:54 -0800
                                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 23:01 -0800
                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 23:03 -0800
                  Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:30 -0800
                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 21:32 -0800
        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 14:59 -0800
      Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-08 19:49 +0000
    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-08 18:16 +0100
      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 13:49 -0800
        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 05:37 +0100
          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 20:40 -0800
        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 20:39 -0800
      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 13:41 -0800
        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 05:36 +0100
          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-08 20:41 -0800
    Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-08 18:16 +0000
    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 10:07 +0100
      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-09 01:11 -0800
        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-09 10:17 +0100
          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-09 01:22 -0800
            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-09 01:23 -0800
      Re: A Java- / .NET-like monitor Branimir Maksimovic <branimir.maksimovic@icloud.com> - 2023-11-10 13:56 +0000
        Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-10 15:08 +0100
          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-10 15:15 +0100
            Re: A Java- / .NET-like monitor Branimir Maksimovic <branimir.maksimovic@icloud.com> - 2023-11-11 02:59 +0000
          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-10 12:44 -0800
            Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-11 04:53 +0100
              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-10 20:09 -0800
              Re: A Java- / .NET-like monitor Branimir Maksimovic <branimir.maksimovic@icloud.com> - 2023-11-11 04:25 +0000
                Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-11 07:07 +0100
    Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-11 11:41 +0100
      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-11 16:39 +0100
        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-11 11:42 -0800
          Re: A Java- / .NET-like monitor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-11-11 17:49 -0500
          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-12 05:40 +0100
            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-12 12:46 -0800
              Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 23:13 -0800
              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 10:04 +0100
                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 01:21 -0800
                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 11:00 +0100
                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 02:08 -0800
                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-14 11:23 +0100
                        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 12:27 -0800
                          Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-14 12:29 -0800
                          Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-15 05:54 +0100
                            Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 12:21 -0800
                              Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-16 04:00 +0100
                                Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-15 19:10 -0800
                                  Re: A Java- / .NET-like monitor Kaz Kylheku <864-117-4973@kylheku.com> - 2023-11-16 03:21 +0000
                                  Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-16 06:36 +0100
                                    Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-16 13:06 -0800
                                      Re: A Java- / .NET-like monitor Bonita Montero <Bonita.Montero@gmail.com> - 2023-11-17 06:57 +0100
      Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-11 11:41 -0800
        Re: A Java- / .NET-like monitor "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-11-13 22:46 -0800

Page 12 of 13 — ← Prev page 1 … 10 11 [12] 13  Next page →


#117662

FromKaz Kylheku <864-117-4973@kylheku.com>
Date2023-11-08 18:16 +0000
Message-ID<20231108100351.347@kylheku.com>
In reply to#117659
On 2023-11-08, Bonita Montero <Bonita.Montero@gmail.com> wrote:
> Java and .NET have monitor objects instead of a combination of mutexes
> and condition variables. The advantage of a monitor object is that when

POSIX-style mutexes and condition variables are actually Mesa-style
monitors.

Monitors were invented by C. A. R. Hoare ("Quicksort Guy") and another
collaborator whose name escapes me, in the context of some concurrent
Pascal experiment.

Hoare monitors make some ordering guarantees that the "Mesa semantics"
monitors do not. Something like that when you signal a condition
variable, a waiting thread gets in, and when it releases the mutex, the
original thread get back in (no competititon).

The paradigm is that there is one monitor and multiple conditions.

> you wait for a monitor to be signalled you can wait for that and for the
> mutexe's semaphore to be unlocked in _one_ step. With a condition varia-
> ble you have first to wait for the notify()-semaphore to be signalled
> and for the mutexe's lock in two steps.

That's an internal detail. In the POSIX API, you have pthread_cond_wait,
which looks like one operation to the caller.

It is not required to be implemented with semaphores.

> struct monitor
> {
> 	monitor();
> 	~monitor();
> 	void lock();
> 	void unlock();
> 	void wait();
> 	void notify();
> 	void notify_all();

The problem is that you often want multiple condition variables with
one monitor. So this is a nonstarter.

I suggest you make an API where the wait operation has an "int cond_index"
parameter to select a condition variable.

The monitor object can be told at construction time how large a vector
of condition variables is required.

That still doesn't provide all the flexibility, but fits the common use
cases where you have a monitor plus a fixed number of condition
variables.

It doesn't work where you have a dynamic number of condition variables;
e.g. a dynamic set data structure has one monitor, plus a condition on
each node it contains.

-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca
NOTE: If you use Google Groups, I don't see you, unless you're whitelisted.

[toc] | [prev] | [next] | [standalone]


#117738

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-09 10:07 +0100
Message-ID<uii7h9$24flo$1@raubtier-asyl.eternal-september.org>
In reply to#117659
I did a test of my monitor against two mutexes and two condition
variables, playing pingpong with each other. On Windows my imple-
mentation is about 12 times faster than the mentioned mutex with
condvar on a AMD 7950X Zen4 16 core system. Under WSL2 on the
same machine the Linux implementation is 12% faster than my code.
On Linux bare metal with a Zen2 3990X 64 core system my code is
about 8.5% faster.
As I recently found in this that a wait() incurs only one context
switch back and forth I thought my code woudln't be faster, but
on bare metal it actually is faster. And I was really surprised
that the MS condvar implementation is that extremely slow compared
to my monitor.

#include <iostream>
#include <thread>
#include <chrono>
#include <vector>
#include <mutex>
#include <condition_variable>
#include "monitor.h"

using namespace std;
using namespace chrono;

int main( int argc, char **argv )
{
	atomic_int32_t tSum;
	auto time = [&]( auto fn )
	{
		tSum = 0;
		auto start = high_resolution_clock::now();
		fn();
		tSum += (int64_t)duration_cast<nanoseconds>( 
high_resolution_clock::now() - start ).count();
	};
	constexpr size_t ROUNDS = 100'000;
	struct not_t
	{
		monitor mon;
		bool notifiy;
	} notA { {}, true }, notB { {}, false };
	notA.notifiy = true;
	auto monThr = [&]( not_t &me, not_t &you )
	{
		time( [&]()
			{
				for( size_t r = ROUNDS; r; --r )
				{
					me.mon.lock();
					for( ; !me.notifiy; me.mon.wait() );
					me.notifiy = false;
					me.mon.unlock();
					you.mon.lock();
					you.notifiy = true;
					you.mon.notify();
					you.mon.unlock();
				}
			} );
	};
	vector<jthread> threads;
	threads.reserve( 0 );
	threads.emplace_back( monThr, ref( notA ), ref( notB ) ),
	threads.emplace_back( monThr, ref( notB ), ref( notA ) );
	threads.resize( 0 );
	cout << tSum / ((double)ROUNDS * 2) << endl;
	struct cv_t
	{
		mutex mtx;
		condition_variable cv;
		bool signal;
	} cvA  = { {}, {}, true }, cvB = { {}, {}, false };
	auto cvThr = [&]( cv_t &cvMe, cv_t &cvYou )
	{
		time( [&]()
			{
				for( size_t r = ROUNDS; r; --r )
				{
					unique_lock<mutex> lockMe( cvMe.mtx );
					for( ; !cvMe.signal; cvMe.cv.wait( lockMe ) );
					cvMe.signal = false;
					lockMe.unlock();
					unique_lock<mutex> lockYou( cvYou.mtx );
					cvYou.signal = true;
					cvYou.cv.notify_one();
				}
			} );
	};
	threads.emplace_back( cvThr, ref( cvA ), ref( cvB ) );
	threads.emplace_back( cvThr, ref( cvB ), ref( cvA ) );
	threads.resize( 0 );
	cout << tSum / ((double)ROUNDS * 2) << endl;
}

[toc] | [prev] | [next] | [standalone]


#117739

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-09 01:11 -0800
Message-ID<uii7ng$24dtg$2@dont-email.me>
In reply to#117738
On 11/9/2023 1:07 AM, Bonita Montero wrote:
> I did a test of my monitor against two mutexes and two condition
> variables, playing pingpong with each other. On Windows my imple-
> mentation is about 12 times faster than the mentioned mutex with
> condvar on a AMD 7950X Zen4 16 core system. Under WSL2 on the
> same machine the Linux implementation is 12% faster than my code.
> On Linux bare metal with a Zen2 3990X 64 core system my code is
> about 8.5% faster.
> As I recently found in this that a wait() incurs only one context
> switch back and forth I thought my code woudln't be faster, but
> on bare metal it actually is faster. And I was really surprised
> that the MS condvar implementation is that extremely slow compared
> to my monitor.
[...]

I am just starting to model some of my queue code. Its going to fun to 
model your monitor and see if its bites the dust.

[toc] | [prev] | [next] | [standalone]


#117740

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-09 10:17 +0100
Message-ID<uii83k$24l1u$1@raubtier-asyl.eternal-september.org>
In reply to#117739
Am 09.11.2023 um 10:11 schrieb Chris M. Thomasson:

> I am just starting to model some of my queue code. Its going to fun to 
> model your monitor and see if its bites the dust.

The advantage under Linux bare metal is only 12%, if you do additional
things in userspace the effect should become smaller. So measuring a
simple bool ping pong shows almost the sole performance of my code.
But you would get a noticeable difference with Windows.


[toc] | [prev] | [next] | [standalone]


#117741

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-09 01:22 -0800
Message-ID<uii8c6$24dtg$4@dont-email.me>
In reply to#117740
On 11/9/2023 1:17 AM, Bonita Montero wrote:
> Am 09.11.2023 um 10:11 schrieb Chris M. Thomasson:
> 
>> I am just starting to model some of my queue code. Its going to fun to 
>> model your monitor and see if its bites the dust.
> 
> The advantage under Linux bare metal is only 12%, if you do additional
> things in userspace the effect should become smaller. So measuring a
> simple bool ping pong shows almost the sole performance of my code.
> But you would get a noticeable difference with Windows.
> 
> 
> 

Modeling it is not about sheer performance, it is about correctness.

[toc] | [prev] | [next] | [standalone]


#117742

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-09 01:23 -0800
Message-ID<uii8dm$24dtg$5@dont-email.me>
In reply to#117741
On 11/9/2023 1:22 AM, Chris M. Thomasson wrote:
> On 11/9/2023 1:17 AM, Bonita Montero wrote:
>> Am 09.11.2023 um 10:11 schrieb Chris M. Thomasson:
>>
>>> I am just starting to model some of my queue code. Its going to fun 
>>> to model your monitor and see if its bites the dust.
>>
>> The advantage under Linux bare metal is only 12%, if you do additional
>> things in userspace the effect should become smaller. So measuring a
>> simple bool ping pong shows almost the sole performance of my code.
>> But you would get a noticeable difference with Windows.
>>
>>
>>
> 
> Modeling it is not about sheer performance, it is about correctness.

Make sure it is sound and correct first, then we can sit back and think 
about how to make it much faster...

[toc] | [prev] | [next] | [standalone]


#117743

FromBranimir Maksimovic <branimir.maksimovic@icloud.com>
Date2023-11-10 13:56 +0000
Message-ID<fEq3N.11675$Ee89.8813@fx17.iad>
In reply to#117738
On 2023-11-09, Bonita Montero <Bonita.Montero@gmail.com> wrote:
> I did a test of my monitor against two mutexes and two condition
> variables, playing pingpong with each other. On Windows my imple-
> mentation is about 12 times faster than the mentioned mutex with
> condvar on a AMD 7950X Zen4 16 core system. Under WSL2 on the
> same machine the Linux implementation is 12% faster than my code.
> On Linux bare metal with a Zen2 3990X 64 core system my code is
> about 8.5% faster.
> As I recently found in this that a wait() incurs only one context
> switch back and forth I thought my code woudln't be faster, but
> on bare metal it actually is faster. And I was really surprised
> that the MS condvar implementation is that extremely slow compared
> to my monitor.
>
here is what i got on macOS:
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x000000018c33d0bc libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x000000018c374cc0 libsystem_pthread.dylib`pthread_kill + 288
    frame #2: 0x000000018c280a40 libsystem_c.dylib`abort + 180
    frame #3: 0x000000018c32c070 libc++abi.dylib`abort_message + 132
    frame #4: 0x000000018c31c004 libc++abi.dylib`demangling_terminate_handler() + 52
    frame #5: 0x000000018c32b434 libc++abi.dylib`std::__terminate(void (*)()) + 16
    frame #6: 0x000000018c32b390 libc++abi.dylib`std::terminate() + 36
    frame #7: 0x000000018c2aa714 libc++.1.dylib`std::__1::thread::~thread() + 32
    frame #8: 0x0000000100007cd0 cond_var`void std::__1::__destroy_at[abi:v160006]<std::__1::thread, 0>(__loc=0x00006000036c4028) at construct_at.h:66:13
    frame #9: 0x0000000100007cac cond_var`void std::__1::destroy_at[abi:v160006]<std::__1::thread, 0>(__loc=0x00006000036c4028) at construct_at.h:101:5
    frame #10: 0x0000000100007c10 cond_var`void std::__1::allocator_traits<std::__1::allocator<std::__1::thread>>::destroy[abi:v160006]<std::__1::thread, void, void>((null)=0x000000016fdff040, __p=0x00006000036c4028) at allocator_traits.h:323:9
    frame #11: 0x000000010000a090 cond_var`std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__base_destruct_at_end[abi:v160006](this=0x000000016fdff030 size=2, __new_last=0x00006000036c4020) at vector:836:9
    frame #12: 0x0000000100009d10 cond_var`std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__destruct_at_end[abi:v160006](this=0x000000016fdff030 size=2, __new_last=0x00006000036c4020) at vector:724:9
    frame #13: 0x00000001000063d4 cond_var`std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 size=2, __sz=0) at vector:1912:15
    frame #14: 0x0000000100005eec cond_var`main(argc=1, argv=0x000000016fdff420) at test_cond.cpp:52:10
    frame #15: 0x000000018bff50e0 dyld`start + 2360


-- 

7-77-777, Evil Sinner!
https://www.linkedin.com/in/branimir-maksimovic-6762bbaa/

[toc] | [prev] | [next] | [standalone]


#117744

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-10 15:08 +0100
Message-ID<uildhg$2rvtq$1@raubtier-asyl.eternal-september.org>
In reply to#117743
Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:

>      frame #13: 0x00000001000063d4 cond_var`std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 size=2, __sz=0) at vector:1912:15
>      frame #14: 0x0000000100005eec cond_var`main(argc=1, argv=0x000000016fdff420) at test_cond.cpp:52:10
>      frame #15: 0x000000018bff50e0 dyld`start + 2360

It seems that resizing the thread-vector while doing an emplace_back(),
which itself seems to be inlined, fails. I don't know why.

[toc] | [prev] | [next] | [standalone]


#117745

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-10 15:15 +0100
Message-ID<uildu6$2s2ao$1@raubtier-asyl.eternal-september.org>
In reply to#117744
Am 10.11.2023 um 15:08 schrieb Bonita Montero:
> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
> 
>>      frame #13: 0x00000001000063d4 
>> cond_var`std::__1::vector<std::__1::thread, 
>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 
>> size=2, __sz=0) at vector:1912:15
>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
> 
> It seems that resizing the thread-vector while doing an emplace_back(),
> which itself seems to be inlined, fails. I don't know why.

I think I've got it: I'm using C++20 jthreads which are joined on the
destruction of the jthread object. I'm just resizing the jthread vector
to join both threads. But your jthread-implementation seems to behave
like a normal C++11 thread which calls abort() on destruction when a
thread which is joinable and not joind.
You may verify that with this code.

#include <thread>

using namespace std;

int main()
{
	(void)jthread( []() { this_thread::sleep_for( 1s ); } );
}

The temporary is very like to be destructed before the thread
is terminated.

[toc] | [prev] | [next] | [standalone]


#117748

FromBranimir Maksimovic <branimir.maksimovic@icloud.com>
Date2023-11-11 02:59 +0000
Message-ID<A6C3N.7536$wvv7.7234@fx14.iad>
In reply to#117745
On 2023-11-10, Bonita Montero <Bonita.Montero@gmail.com> wrote:
> Am 10.11.2023 um 15:08 schrieb Bonita Montero:
>> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
>> 
>>>      frame #13: 0x00000001000063d4 
>>> cond_var`std::__1::vector<std::__1::thread, 
>>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 
>>> size=2, __sz=0) at vector:1912:15
>>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
>> 
>> It seems that resizing the thread-vector while doing an emplace_back(),
>> which itself seems to be inlined, fails. I don't know why.
>
> I think I've got it: I'm using C++20 jthreads which are joined on the
> destruction of the jthread object. I'm just resizing the jthread vector
> to join both threads. But your jthread-implementation seems to behave
> like a normal C++11 thread which calls abort() on destruction when a
> thread which is joinable and not joind.
> You may verify that with this code.
>
> #include <thread>
>
> using namespace std;
>
> int main()
> {
> 	(void)jthread( []() { this_thread::sleep_for( 1s ); } );
> }
>
> The temporary is very like to be destructed before the thread
> is terminated.
>

yes, i don't have jthread. Will try with g++ rather clang...
Yeeee, real g++ has jthread:

-- 
la@MacBook-Air News % g++-13 -O3   cond_var.cpp test_cond.cpp -o cond_var -std=c++20 -D__unix__
ld: warning: ignoring duplicate libraries: '-lgcc'
Lola@MacBook-Air News % ./cond_var
3881.83
2984.36
Lola@MacBook-Air News %

7-77-777, Evil Sinner!
https://www.linkedin.com/in/branimir-maksimovic-6762bbaa/

[toc] | [prev] | [next] | [standalone]


#117747

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-10 12:44 -0800
Message-ID<uim4o5$30nss$2@dont-email.me>
In reply to#117744
On 11/10/2023 6:08 AM, Bonita Montero wrote:
> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
> 
>>      frame #13: 0x00000001000063d4 
>> cond_var`std::__1::vector<std::__1::thread, 
>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 
>> size=2, __sz=0) at vector:1912:15
>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
> 
> It seems that resizing the thread-vector while doing an emplace_back(),
> which itself seems to be inlined, fails. I don't know why.
> 

You should of modeled in a race-detector first!

[toc] | [prev] | [next] | [standalone]


#117749

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-11 04:53 +0100
Message-ID<uimtsn$38rgf$1@raubtier-asyl.eternal-september.org>
In reply to#117747
Am 10.11.2023 um 21:44 schrieb Chris M. Thomasson:
> On 11/10/2023 6:08 AM, Bonita Montero wrote:
>> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
>>
>>>      frame #13: 0x00000001000063d4 
>>> cond_var`std::__1::vector<std::__1::thread, 
>>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 size=2, __sz=0) at vector:1912:15
>>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
>>
>> It seems that resizing the thread-vector while doing an emplace_back(),
>> which itself seems to be inlined, fails. I don't know why.
>>
> 
> You should of modeled in a race-detector first!

To find bugs inside his jthread-implementation ?

[toc] | [prev] | [next] | [standalone]


#117750

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-10 20:09 -0800
Message-ID<uimuqm$38vmc$1@dont-email.me>
In reply to#117749
On 11/10/2023 7:53 PM, Bonita Montero wrote:
> Am 10.11.2023 um 21:44 schrieb Chris M. Thomasson:
>> On 11/10/2023 6:08 AM, Bonita Montero wrote:
>>> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
>>>
>>>>      frame #13: 0x00000001000063d4 
>>>> cond_var`std::__1::vector<std::__1::thread, 
>>>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 size=2, __sz=0) at vector:1912:15
>>>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>>>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
>>>
>>> It seems that resizing the thread-vector while doing an emplace_back(),
>>> which itself seems to be inlined, fails. I don't know why.
>>>
>>
>> You should of modeled in a race-detector first!
> 
> To find bugs inside his jthread-implementation ?
> 

To help find a bug, yup. Think it up, draft it out, create test units, 
model them with a race detector, Get it working... Then, we can think 
about improving performance.

[toc] | [prev] | [next] | [standalone]


#117751

FromBranimir Maksimovic <branimir.maksimovic@icloud.com>
Date2023-11-11 04:25 +0000
Message-ID<RmD3N.7544$wvv7.1784@fx14.iad>
In reply to#117749
On 2023-11-11, Bonita Montero <Bonita.Montero@gmail.com> wrote:
> Am 10.11.2023 um 21:44 schrieb Chris M. Thomasson:
>> On 11/10/2023 6:08 AM, Bonita Montero wrote:
>>> Am 10.11.2023 um 14:56 schrieb Branimir Maksimovic:
>>>
>>>>      frame #13: 0x00000001000063d4 
>>>> cond_var`std::__1::vector<std::__1::thread, 
>>>> std::__1::allocator<std::__1::thread>>::resize(this=0x000000016fdff030 size=2, __sz=0) at vector:1912:15
>>>>      frame #14: 0x0000000100005eec cond_var`main(argc=1, 
>>>> argv=0x000000016fdff420) at test_cond.cpp:52:10
>>>>      frame #15: 0x000000018bff50e0 dyld`start + 2360
>>>
>>> It seems that resizing the thread-vector while doing an emplace_back(),
>>> which itself seems to be inlined, fails. I don't know why.
>>>
>> 
>> You should of modeled in a race-detector first!
>
> To find bugs inside his jthread-implementation ?
>
There is no bug. I simply used thread instead of jtrhead
as Apple g++ implementation does not have it.
Since thread destructor throws exception
if thread is still running, it calls terminate
handler.
Real g++ implementation works:
Lola@MacBook-Air News % ./cond_var
3566.26
3292.95
Lola@MacBook-Air News %
Same thing is happening with all other
I showed previously.
I placed switch -std=c++20 in Apple's g++,
but anyway it does not have jthread.
take a look:
Lola@MacBook-Air News % clang++ -O3   cond_var.cpp test_cond.cpp -o cond_var -std=c++20 -D__unix__
test_cond.cpp:48:9: error: unknown type name 'jthread'; did you mean 'thread'?
        vector<jthread> threads;
               ^~~~~~~
               thread
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/thread:225:24: note: 'thread' declared here
class _LIBCPP_TYPE_VIS thread
                       ^
1 error generated.
Lola@MacBook-Air News %

-- 

7-77-777, Evil Sinner!
https://www.linkedin.com/in/branimir-maksimovic-6762bbaa/

[toc] | [prev] | [next] | [standalone]


#117752

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-11 07:07 +0100
Message-ID<uin5np$3a5ed$1@raubtier-asyl.eternal-september.org>
In reply to#117751
Am 11.11.2023 um 05:25 schrieb Branimir Maksimovic:

> Lola@MacBook-Air News % ./cond_var
> 3566.26
> 3292.95

Same as on my 3990X Linux PC: 8% faster.

[toc] | [prev] | [next] | [standalone]


#117753

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-11 11:41 +0100
Message-ID<uinloo$3d813$1@raubtier-asyl.eternal-september.org>
In reply to#117659
I think I've put the finishing touches to the code now. For the mutex
part I introduced spinning, which I adopted from glibc. Spinning usually
makes little sense for producer-consumer relationships because the time
it takes to put an item in the queue or take it out of it is usually
very short, and the time it takes to produce the item before and consume
it afterwards is usually very short is usually orders of magnitude
higher; Therefore, a collision during locking can occur quite rarely.
Nevertheless, I can also imagine cases where items are produced and
consumed with high frequency, and spinning could make sense there.

So, here are the two changed files:

// monitor.h

#pragma once
#if defined(_WIN32)
	#define NOMINMAX
	#include <Windows.h>
#elif defined(__unix__)
	#include <sys/types.h>
	#include <sys/sem.h>
	#include <sys/stat.h>
#else
	#error unsupported platform
#endif
#include <atomic>
#include <type_traits>
#if defined(_WIN32)
	#include "xhandle.h"
#endif

struct monitor
{
	monitor( uint16_t maxSpin = 0 );
	~monitor();
	void lock();
	void unlock();
	bool try_lock();
	void wait();
	void notify();
	void notify_all();
	uint16_t maxSpin( int16_t maxSpin );
private:
	inline static thread_local char t_dummy;
	static constexpr bool USE64 = std::atomic_int64_t::is_always_lock_free;
	using aword_t = std::conditional_t<USE64, uint64_t, uint32_t>;
	static constexpr unsigned BITS = sizeof(aword_t) * 8 / 2;
	static constexpr aword_t
		ENTER_VALUE = 1,
		SIGNAL_VALUE = 1ull << BITS,
		ENTER_MASK = SIGNAL_VALUE - 1,
		SIGNAL_MASK = ENTER_MASK << BITS;
	std::atomic<aword_t> m_atomic;
	std::atomic<void *> m_threadId;
	uint32_t m_recCount;
	bool spinLock( aword_t &ref, bool once );
#if defined(_WIN32)
	static constexpr uint32_t SEM_MAX = std::numeric_limits<LONG>::max();
	XHANDLE
		m_xhEnterEvt,
		m_xhSignalSem;
#elif defined(__unix__)
	static constexpr uint32_t SEM_MAX = std::numeric_limits<short>::max();
	int m_sems;
	int semop( std::initializer_list<sembuf> sems );
#endif
	std::atomic_uint16_t m_maxSpin, m_spinLimit;
};

// monitor.cpp

#include <iostream>
#include <limits>
#include <system_error>
#include <cassert>
#if defined(__x86_64__) || defined(__i386__)
	#include <immintrin.h>
#endif
#include "monitor.h"

using namespace std;

monitor::monitor( uint16_t maxSpin ) :
	m_atomic( 0 ),
	m_threadId( nullptr ),
#if defined(_WIN32)
	m_xhEnterEvt( CreateEventA( nullptr, FALSE, FALSE, nullptr ) ),
	m_xhSignalSem( CreateSemaphoreA( nullptr, 0, SEM_MAX, nullptr ) ),
#elif defined(__unix__)
	m_sems( semget( IPC_PRIVATE, 2, S_IRUSR | S_IWUSR ) ),
#endif
	m_maxSpin( maxSpin ),
	m_spinLimit( 0 )
{
#if defined(_WIN32)
	if( !m_xhEnterEvt.get() || !m_xhSignalSem.get() )
		throw system_error( GetLastError(), system_category(), "can't 
initialize monitor object" );
#elif defined(__unix__)
	auto zeroSem = [&]() -> bool
	{
	#if defined(__linux__)
		return true;
	#else
		short vals[2] = { 0, 0 };
		return !semctl( m_sems, 0, SETALL, vals );
	#endif
	};
	if( m_sems == -1 || zeroSem() )
	{
		int errNo = errno;
		if( m_sems != -1 )
			this->~monitor();
		throw system_error(errNo, system_category(), "can't initialize monitor 
object" );
	}
#endif
}

monitor::~monitor()
{
#if defined(__unix__)
	int ret = semctl( m_sems, 0, IPC_RMID );
	assert(ret != -1);
#endif
}

void monitor::lock()
{
	if( m_threadId.load( memory_order_relaxed ) == &t_dummy )
	{
		if( m_recCount == (uint32_t)-1 )
			throw system_error( (int)errc::result_out_of_range, 
generic_category(), "montor's recursion count saturated" );
		++m_recCount;
		return;
	}
	aword_t ref = m_atomic.load( memory_order_relaxed );
	if( spinLock( ref, false ) )
		return;
	do
	{
		if( (ref & ENTER_MASK) == ENTER_MASK )
			throw system_error( (int)errc::result_out_of_range, 
generic_category(), "montor's locker count saturated" );
		assert((ref & ENTER_MASK) >= ref >> BITS);
	} while( !m_atomic.compare_exchange_strong( ref, ref + 1, 
memory_order_acquire, memory_order_relaxed ) );
	if( (ref & ENTER_MASK) != ref >> BITS ) [[likely]]
	{
#if defined(_WIN32)
		if( WaitForSingleObject( m_xhEnterEvt.get(), INFINITE ) != WAIT_OBJECT_0 )
			terminate();
#elif defined(__unix__)
		if( semop( { { 0, -1, 0 } } ) == -1 )
			terminate();
#endif
	}
	m_threadId.store( &t_dummy, memory_order_relaxed );
	m_recCount = 0;
}

void monitor::unlock()
{
	if( m_threadId.load( memory_order_relaxed ) == &t_dummy && m_recCount )
		return (void)--m_recCount;
	aword_t ref = m_atomic.load( memory_order_relaxed );
	assert((ref & ENTER_MASK) && m_threadId == &t_dummy);
	m_threadId.store( nullptr, memory_order_relaxed );
	do
		assert((ref & ENTER_MASK) > ref >> BITS);
	while( !m_atomic.compare_exchange_strong( ref, ref - 1, 
memory_order_release, memory_order_relaxed ) );
	if( (ref & ENTER_MASK) - (ref >> BITS) == 1 ) [[likely]]
		return;
#if defined(_WIN32)
	if( !SetEvent( m_xhEnterEvt.get() ) )
		terminate();
#elif defined(__unix__)
	if( semop( { { 0, 1, IPC_NOWAIT } } ) == -1 )
		terminate();
#endif	
}

bool monitor::try_lock()
{
	aword_t ref = m_atomic.load( memory_order_relaxed );
	return spinLock( ref, true );
}

void monitor::wait()
{
	assert(m_threadId == &t_dummy && !m_recCount);
	m_threadId.store( nullptr, memory_order_relaxed );
	aword_t ref = m_atomic.load( memory_order_relaxed );
	do
		assert((ref & ENTER_MASK) > ref >> BITS);
	while( !m_atomic.compare_exchange_strong( ref, ref + SIGNAL_VALUE, 
memory_order_release, memory_order_relaxed ) );
	if( (ref & ENTER_MASK) - (ref >> BITS) > 1 )
	{
#if defined(_WIN32)
		if( !SetEvent( m_xhEnterEvt.get() ) )
			terminate();
#elif defined(__unix__)
		if( semop( { { 0, 1, IPC_NOWAIT } } ) == -1 )
			terminate();
#endif
	}
#if defined(_WIN32)
	HANDLE waitFor[2] { m_xhEnterEvt.get(), m_xhSignalSem.get() };
	if( WaitForMultipleObjects( 2, waitFor, TRUE, INFINITE ) != WAIT_OBJECT_0 )
		terminate();
#elif defined(__unix__)
	if( semop( { { 0, -1, 0 }, { 1, -1, 0 } } ) == -1 )
		terminate();
#endif
	m_threadId.store( &t_dummy, memory_order_relaxed );
	m_recCount = 0;
}

void monitor::notify()
{
	aword_t ref = m_atomic.load( memory_order_relaxed );
	assert((ref & ENTER_MASK) > ref >> BITS && m_threadId == &t_dummy);
	do
		if( !(ref >> BITS) )
			return;
	while( !m_atomic.compare_exchange_strong( ref, ref - SIGNAL_VALUE, 
memory_order_relaxed, memory_order_relaxed ) );
#if defined(_WIN32)
	if( !ReleaseSemaphore( m_xhSignalSem.get(), 1, nullptr ) )
		terminate();
#elif defined(__unix__)
	if( semop( { { 1, 1, IPC_NOWAIT } }) == -1 )
		terminate();
#endif
}

void monitor::notify_all()
{
	aword_t ref = m_atomic.load( memory_order_relaxed );
	assert((ref & ENTER_MASK) > ref >> BITS && m_threadId == &t_dummy);
	uint32_t n;
	do
		if( !(n = (uint32_t)(ref >> BITS)) )
			return;
	while( !m_atomic.compare_exchange_strong( ref, ref & ENTER_MASK, 
memory_order_relaxed, memory_order_relaxed ) );
#if defined(_WIN32)
	if( n > SEM_MAX || !ReleaseSemaphore( m_xhSignalSem.get(), n, nullptr ) )
		terminate();
#elif defined(__unix__)
	for( uint32_t nRelease; n; n -= nRelease )
		if( semop( { { 1, (short)(nRelease = n <= SEM_MAX ? n : SEM_MAX), 
IPC_NOWAIT } } ) == -1 )
			terminate();
#endif
}

uint16_t monitor::maxSpin( int16_t maxSpin )
{
	uint16_t curMaxSpin = m_maxSpin.load( memory_order_relaxed );
	if( maxSpin >= 0 )
		m_maxSpin.store( maxSpin, memory_order_relaxed );
	return curMaxSpin;
}

bool monitor::spinLock( aword_t &ref, bool once )
{
	// spinning algorithm taken from glibc
	uint32_t maxSpin = m_maxSpin.load( memory_order_relaxed );
	once = once && !maxSpin;
	maxSpin = !once ? maxSpin : 1;
	if( !maxSpin )
		return false;
	uint32_t
		prevSpinLimit = m_spinLimit.load( memory_order_relaxed ),
		spinLimit = prevSpinLimit * 2u + 10u,
		spinCount = 0;
	spinLimit = spinLimit <= maxSpin ? spinLimit : maxSpin;
	bool locked = false;
	for( ; ; ref = m_atomic.load( memory_order_relaxed ) )
	{
		assert((ref & ENTER_MASK) >= ref >> BITS);
		if( uint32_t enterers = ref & ENTER_MASK;
			enterers == ref >> BITS && enterers != ENTER_MASK
			&& m_atomic.compare_exchange_strong( ref, ref + 1, 
memory_order_acquire, memory_order_relaxed ) )
		{
			m_threadId.store( &t_dummy, memory_order_relaxed );
			m_recCount = 0;
			locked = true;
			break;
		}
		if( ++spinCount == spinLimit )
			break;
#if defined(_WIN32)
		YieldProcessor();
#elif (defined(__GNUC__) || defined(__clang__)) && (defined(__x86_64__) 
|| defined(__i386__))
		_mm_pause();
#elif (defined(__GNUC__) || defined(__clang__)) && (defined(__arm__) || 
defined(__aarch64__))
		__yield();
#else
		#error "need platform-specific pause-instruction"
#endif
	}
	if( !once ) [[likely]]
		m_spinLimit.store( (uint16_t)(prevSpinLimit + (int32_t)(spinCount - 
prevSpinLimit) / 8), memory_order_relaxed );
	return locked;
}

#if defined(__unix__)
inline int monitor::semop( initializer_list<sembuf> sems )
{
	int ret;
	while( (ret = ::semop( m_sems, const_cast<sembuf *>(sems.begin()), 
sems.size() )) == -1 && errno == EINTR );
	return ret;
}
#endif

[toc] | [prev] | [next] | [standalone]


#117754

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-11 16:39 +0100
Message-ID<uio76q$3gj34$1@raubtier-asyl.eternal-september.org>
In reply to#117753
Am 11.11.2023 um 11:41 schrieb Bonita Montero:

>      if( m_sems == -1 || zeroSem() )
        if( m_sems == -1 || !zeroSem() )

[toc] | [prev] | [next] | [standalone]


#117756

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2023-11-11 11:42 -0800
Message-ID<uiolf0$3j4r2$3@dont-email.me>
In reply to#117754
On 11/11/2023 7:39 AM, Bonita Montero wrote:
> Am 11.11.2023 um 11:41 schrieb Bonita Montero:
> 
>>      if( m_sems == -1 || zeroSem() )
>         if( m_sems == -1 || !zeroSem() )
> 
> 

Is that yet another bug correction? Remember my advise, get it working 
then try to make it faster.

[toc] | [prev] | [next] | [standalone]


#117758

FromPavel <pauldontspamtolk@removeyourself.dontspam.yahoo>
Date2023-11-11 17:49 -0500
Message-ID<xxT3N.20436$wvv7.1323@fx14.iad>
In reply to#117756
Chris M. Thomasson wrote:
> On 11/11/2023 7:39 AM, Bonita Montero wrote:
>> Am 11.11.2023 um 11:41 schrieb Bonita Montero:
>>
>>>      if( m_sems == -1 || zeroSem() )
>>         if( m_sems == -1 || !zeroSem() )
>>
>>
> 
> Is that yet another bug correction? Remember my advise, get it working 
> then try to make it faster.
Chris, I think you are preaching to the deaf. I would give up 5 times 
already. Your patience is angelic.

[toc] | [prev] | [next] | [standalone]


#117759

FromBonita Montero <Bonita.Montero@gmail.com>
Date2023-11-12 05:40 +0100
Message-ID<uipl0g$3su3r$1@raubtier-asyl.eternal-september.org>
In reply to#117756
Am 11.11.2023 um 20:42 schrieb Chris M. Thomasson:

> Is that yet another bug correction? Remember my advise, get it working 
> then try to make it faster.

The code immediately crashed because of an exception;
easiest debugging.

[toc] | [prev] | [next] | [standalone]


Page 12 of 13 — ← Prev page 1 … 10 11 [12] 13  Next page →

Back to top | Article view | comp.lang.c++


csiph-web