Commit 650a7bd5 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 877bab37
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Wendelin.bigfile | BigFile file backend # Wendelin.bigfile | BigFile file backend
# Copyright (C) 2014-2015 Nexedi SA and Contributors. # Copyright (C) 2014-2019 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com> # Kirill Smelkov <kirr@nexedi.com>
# #
# This program is free software: you can Use, Study, Modify and Redistribute # This program is free software: you can Use, Study, Modify and Redistribute
...@@ -25,7 +25,7 @@ from io import FileIO, SEEK_SET ...@@ -25,7 +25,7 @@ from io import FileIO, SEEK_SET
# XXX naming # XXX naming
class BigFile_File(BigFile): class BigFile_File(BigFile):
# .f - io.FileIo to file # .f - io.FileIO to file
def __new__(cls, path_or_fd, blksize): def __new__(cls, path_or_fd, blksize):
# XXX pass flags/mode as args to ctor ? # XXX pass flags/mode as args to ctor ?
...@@ -41,7 +41,7 @@ class BigFile_File(BigFile): ...@@ -41,7 +41,7 @@ class BigFile_File(BigFile):
f.seek(blk * blksize, SEEK_SET) f.seek(blk * blksize, SEEK_SET)
# XXX unfortunately buffer(buf, pos) creates readonly buffer, so we # XXX unfortunately buffer(buf, pos) creates readonly buffer, so we
# have to use memoryviews # have to use memoryview
# XXX not needed after BIGFILE_USE_OLD_BUFFER support is dropped # XXX not needed after BIGFILE_USE_OLD_BUFFER support is dropped
bufmem = memoryview(buf) bufmem = memoryview(buf)
......
/* Wendelin.bigfile | Low-level pagefault handler /* Wendelin.bigfile | Low-level pagefault handler
* Copyright (C) 2014-2015 Nexedi SA and Contributors. * Copyright (C) 2014-2019 Nexedi SA and Contributors.
* Kirill Smelkov <kirr@nexedi.com> * Kirill Smelkov <kirr@nexedi.com>
* *
* This program is free software: you can Use, Study, Modify and Redistribute * This program is free software: you can Use, Study, Modify and Redistribute
...@@ -89,7 +89,7 @@ static void on_pagefault(int sig, siginfo_t *si, void *_uc) ...@@ -89,7 +89,7 @@ static void on_pagefault(int sig, siginfo_t *si, void *_uc)
* block is allocated dynamically at runtime, we can overlap with such * block is allocated dynamically at runtime, we can overlap with such
* allocation only if SIGSEGV happens in that original TLS allocation, * allocation only if SIGSEGV happens in that original TLS allocation,
* which should not happen, and thus it is already a bug somewhere in * which should not happen, and thus it is already a bug somewhere in
* thread datatructures. */ * thread data structures. */
static __thread int in_on_pagefault; static __thread int in_on_pagefault;
BUG_ON(in_on_pagefault); BUG_ON(in_on_pagefault);
++in_on_pagefault; ++in_on_pagefault;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment