Well atm there's only one worker thread, so the assumption is correct. It's probably a future-proof assumption as well going forward should Greg increase the worker thread pool for whatever reason- it's certainly not needed with our current deployments.
>________________________________ > From: Daniel Shahaf <danie...@apache.org> >To: dev@subversion.apache.org; gst...@apache.org; j...@apache.org >Sent: Thursday, August 30, 2012 11:22 AM >Subject: Re: svn commit: r1378980 - >/subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py > >Would appreciate a review of this revision. > >In particular I assumed that _update() will never be run by two threads >concurrently on the same wc path. > >Thanks > >Daniel > >danie...@apache.org wrote on Thu, Aug 30, 2012 at 15:12:32 -0000: >> Author: danielsh >> Date: Thu Aug 30 15:12:32 2012 >> New Revision: 1378980 >> >> URL: http://svn.apache.org/viewvc?rev=1378980&view=rev >> Log: >> [in tools/server-side/svnpubsub/] >> >> * svnwcsub.py >> (BackgroundWorker._update): >> Delete .revision and recreate it (just in case it's a symlink). >> >> Modified: >> subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py >> >> Modified: subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py >> URL: >> http://svn.apache.org/viewvc/subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py?rev=1378980&r1=1378979&r2=1378980&view=diff >> ============================================================================== >> --- subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py (original) >> +++ subversion/trunk/tools/server-side/svnpubsub/svnwcsub.py Thu Aug 30 >> 15:12:32 2012 >> @@ -29,6 +29,7 @@ >> # See svnwcsub.conf for more information on its contents. >> # >> >> +import errno >> import subprocess >> import threading >> import sys >> @@ -252,7 +253,15 @@ class BackgroundWorker(threading.Thread) >> ### check the loglevel before running 'svn info'? >> info = svn_info(self.svnbin, self.env, wc.path) >> logging.info("updated: %s now at r%s", wc.path, info['Revision']) >> - open(os.path.join(wc.path, '.revision'), >> 'w').write(info['Revision']) >> + >> + ### update the .revision file >> + dotrevision = os.path.join(wc.path, '.revision') >> + try: >> + os.unlink(dotrevision) >> + except IOError, e: >> + if e.errno != errno.ENOENT: >> + raise >> + open(dotrevision, 'w').write(info['Revision']) >> >> def _cleanup(self, wc): >> "Run a cleanup on the specified working copy." >> >> > > >