Skip to content

Windows compatibility #9

@racoltdev

Description

@racoltdev

Syscalls such as read(), write(), execl() do exist on Windows, but will throw a warning due to deprecated name. fork() and pthreads do not exist on Windows and strategies must be developed to handle this correctly. There are 3 options:

  1. force compilation of any multithreaded code
  2. cross platform threading library
  3. two branches of source code for posix and windows

Currently the only multithreaded code is in test_runner.cpp. Forcing use of cygwyn to compile this is not a problem since it will only need to be compiled by itself and only once. Future multithreading implementations will likely include non Windows compatible code in logger.cpp and raColTest_macros.h, which are used in the compilation of every test executable and cannot be reliant on cygwyn. End users should be able to choose how they compile their own test suites and this is unacceptable.

Development of a second branch for windows would both be costly and reliant on me working with Windows syscalls, neither of which are things I like.

A cross platform threading library is likely going to be bulky, but is the easiest to implement and most the stable option. Research should be done into what libraries exist, or if there are other alternative solution routes I missed.

Issue label should be updated from enhancement to todo with high priority when/if per file granularity multithreading is implemented as per #5.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs triageNeeds priority/effort determined through further researchenhancementImprove or add new features

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions