A multithreaded online IDE for pair-programming built using Operating Systems concepts.
- Clone the repo.
- Run the
makecommand. - If you got no compilation errors then you can run
./web_server.
- Run
./ngrok/ngrok http 18000. - Using the link obtained, head over to
<link>/mirror.htmlto view the IDE. - Enable autocompletion using
Ctrl+Space.
- Run
python test_single_vs_multi.pyfor comparison between single-threaded and multi-threaded server. - Run
python test_multiple_reader.pyfor simulating many readers. - Run 'python write_test.py` for simulating many writers.
- Run
python read_write_test.pyfor simulating cycles of readers and writers.
http://localhost:18000/to view Reader-Writer./reader?line_num={line_num}api for reader to read line number:line_num./writer?line_num={line_num}&content={content}for writer to edit the line number:line_numbycontent./docs_writer?line_num={line_num}&content={content}same as above./docs_readerread all the content of thedata.txtfile.
- Add the new file in
Makefile, if any. - Keep standard libraries in
*.hheader files. - Use similar code format throughout the whole codebase (Use VS Code standard format support:
Ctrl + Shift + I). - Use meaningful variable names.
- Before pushing the code make sure your are on the upstream and avoid doing force push unless necessary.
- Add executable files (like
web_server) in.gitignore.
Made with ❤️️ as part of the course Algorithms and Operating Systems, Monsoon '21.


