Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
      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. lseek64_pread64.diff
          6 kB
          Marvin Humphrey
        2. FSFileHandle.bp
          2 kB
          Marvin Humphrey
        3. FSFileHandle.c
          17 kB
          Marvin Humphrey
        4. TestFSFileHandle.bp
          0.7 kB
          Marvin Humphrey
        5. TestFSFileHandle.c
          8 kB
          Marvin Humphrey
        6. fsfilehandle_support.diff
          3 kB
          Marvin Humphrey

          Activity

            People

            • Assignee:
              creamyg Marvin Humphrey
              Reporter:
              creamyg Marvin Humphrey
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: