Author: svn-role
Date: Wed Jul  8 04:00:10 2026
New Revision: 1935988

Log:
Merge r1934784 from trunk:

 * r1934784
   Do not mix atomic and non-atomic access to a variable.
   Justification:
     It's just wrong, and whilst it might work on many modern CPUs,
     we shouldn't rely on that.
   Votes:
     +1: brane, ivan, dsahlberg

Modified:
   subversion/branches/1.15.x/   (props changed)
   subversion/branches/1.15.x/STATUS
   subversion/branches/1.15.x/subversion/svnserve/svnserve.c

Modified: subversion/branches/1.15.x/STATUS
==============================================================================
--- subversion/branches/1.15.x/STATUS   Wed Jul  8 02:39:08 2026        
(r1935987)
+++ subversion/branches/1.15.x/STATUS   Wed Jul  8 04:00:10 2026        
(r1935988)
@@ -67,14 +67,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1934784
-   Do not mix atomic and non-atomic access to a variable.
-   Justification:
-     It's just wrong, and whilst it might work on many modern CPUs,
-     we shouldn't rely on that.
-   Votes:
-     +1: brane, ivan, dsahlberg
-
  * r1934786
    Fix an uninitialized memory access bug in FSX.
    Justification:
@@ -96,4 +88,3 @@ Approved changes:
      Subversion should try to not crash.
    Votes:
      +1: brane, ivan, kotkov
-

Modified: subversion/branches/1.15.x/subversion/svnserve/svnserve.c
==============================================================================
--- subversion/branches/1.15.x/subversion/svnserve/svnserve.c   Wed Jul  8 
02:39:08 2026        (r1935987)
+++ subversion/branches/1.15.x/subversion/svnserve/svnserve.c   Wed Jul  8 
04:00:10 2026        (r1935988)
@@ -495,7 +495,7 @@ static void sigchld_handler(int signo)
 #endif
 
 #ifdef APR_HAVE_SIGACTION
-static svn_atomic_t sigtermint_seen = 0;
+static volatile svn_atomic_t sigtermint_seen = 0;
 static void
 sigtermint_handler(int signo)
 {
@@ -559,7 +559,7 @@ accept_connection(connection_t **connect
       status = apr_socket_accept(&(*connection)->usock, sock,
                                  connection_pool);
 #if APR_HAVE_SIGACTION
-      if (sigtermint_seen)
+      if (svn_atomic_read(&sigtermint_seen))
           break;
 #endif
       if (handling_mode == connection_mode_fork)
@@ -579,7 +579,7 @@ accept_connection(connection_t **connect
   if (!status)
     return SVN_NO_ERROR;
 #if APR_HAVE_SIGACTION
-  else if (sigtermint_seen)
+  else if (svn_atomic_read(&sigtermint_seen))
     return SVN_NO_ERROR;
 #endif
   else
@@ -1368,7 +1368,7 @@ sub_main(int *exit_code,
       SVN_ERR(accept_connection(&connection, sock, &params, handling_mode,
                                 pool));
 #if APR_HAVE_SIGACTION
-      if (sigtermint_seen)
+      if (svn_atomic_read(&sigtermint_seen))
           break;
 #endif
       if (run_mode == run_mode_listen_once)

Reply via email to