##// END OF EJS Templates
persistent-nodemap: properly ignore non-existent `.nd` data file...
persistent-nodemap: properly ignore non-existent `.nd` data file This code was meant to handle the case of a nodemap docket file pointing to a nodemap data file that doesn’t exist (anymore), but most likely caused an `UnboundLocalError` exception instead when `data` was used on the next line without being defined. This case is theoretically possible with a race condition between two hg processes, but is hard to reproduce or test: * Process A reads a docket file and finds a UID in it that points to a given data file name. * Process B decides that this same data file needs compacting. It writes a new one with a different UID, overwrites the docket file, then removes the old data file. * Only then process A tries to a open a file that doesn’t exist anymore. Differential Revision: https://phab.mercurial-scm.org/D9533

File last commit:

r36781:90f8fe72 default
r46705:8ff2d835 default
Show More
xutils.h
39 lines | 1.3 KiB | text/x-c | CLexer
Jun Wu
xdiff: vendor xdiff library from git...
r36689 /*
* LibXDiff by Davide Libenzi ( File Differential Library )
* Copyright (C) 2003 Davide Libenzi
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see
* <http://www.gnu.org/licenses/>.
*
* Davide Libenzi <davidel@xmailserver.org>
*
*/
#if !defined(XUTILS_H)
#define XUTILS_H
Jun Wu
xdiff: replace {unsigned ,}long with {u,}int64_t...
r36840 int64_t xdl_bogosqrt(int64_t n);
int xdl_cha_init(chastore_t *cha, int64_t isize, int64_t icount);
Jun Wu
xdiff: vendor xdiff library from git...
r36689 void xdl_cha_free(chastore_t *cha);
void *xdl_cha_alloc(chastore_t *cha);
Jun Wu
xdiff: replace {unsigned ,}long with {u,}int64_t...
r36840 int64_t xdl_guess_lines(mmfile_t *mf, int64_t sample);
Jun Wu
xdiff: remove unused flags parameter...
r36841 int xdl_recmatch(const char *l1, int64_t s1, const char *l2, int64_t s2);
uint64_t xdl_hash_record(char const **data, char const *top);
Jun Wu
xdiff: use int64 for hash table size...
r36843 unsigned int xdl_hashbits(int64_t size);
Jun Wu
xdiff: vendor xdiff library from git...
r36689
#endif /* #if !defined(XUTILS_H) */