diff options
| -rw-r--r-- | core/src/xmake/io/openlock.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/src/xmake/io/openlock.c b/core/src/xmake/io/openlock.c index c3653cbfc..42d905557 100644 --- a/core/src/xmake/io/openlock.c +++ b/core/src/xmake/io/openlock.c @@ -47,7 +47,10 @@ tb_int_t xm_io_openlock(lua_State* lua) tb_assert_and_check_return_val(path, 0); // init file lock - tb_filelock_ref_t lock = tb_filelock_init_from_path(path, tb_file_info(path, tb_null)? TB_FILE_MODE_RO : TB_FILE_MODE_RW | TB_FILE_MODE_CREAT); + tb_long_t tryn = 2; + tb_filelock_ref_t lock = tb_null; + while (!lock && tryn-- > 0) + lock = tb_filelock_init_from_path(path, tb_file_info(path, tb_null)? TB_FILE_MODE_RO : TB_FILE_MODE_RW | TB_FILE_MODE_CREAT); if (lock) { // init file lock |
