XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • None
    • None
    • Core
    • None

    Description

      FSFileHandle abstracts out low level interaction with the OS and file system.

      Some form of memory map support is required: mmap() on unixen, and
      CreateFileMapping()/MapViewOfFile() on Windows.

      Only atomic, positional reads are supported, using 64-bit pread() on unixen,
      and ReadFile() with an OVERLAPPED structure on Windows.

      Multiple InStreams may share a single read-only FSFileHandle, because
      FSFH_Read() does not change file position or other state in the underlying
      OS-specific file object. Theoretically, operating multiple InStreams in
      different threads against a single shared FileHandle will also work – which
      is crucial for threadsafe compound files. Thread safety is as yet untested,
      though, since Lucy's Perl bindings are single-threaded.

      Attachments

        1. fsfilehandle_support.diff
          3 kB
          Marvin Humphrey
        2. TestFSFileHandle.c
          8 kB
          Marvin Humphrey
        3. TestFSFileHandle.bp
          0.7 kB
          Marvin Humphrey
        4. FSFileHandle.c
          17 kB
          Marvin Humphrey
        5. FSFileHandle.bp
          2 kB
          Marvin Humphrey
        6. lseek64_pread64.diff
          6 kB
          Marvin Humphrey

        Activity

          People

            marvin Marvin Humphrey
            marvin Marvin Humphrey
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: