Updated paper.md based on feedback in https://github.com/openjournals/joss-reviews/issues/1592#issuecomment-515900507
This commit is contained in:
parent
f09a651a6b
commit
8edf4355f2
1 changed files with 22 additions and 2 deletions
|
|
@ -45,7 +45,24 @@ simultaneous use.
|
||||||
An additional safety feature is stopping of asynchronous handlers when the
|
An additional safety feature is stopping of asynchronous handlers when the
|
||||||
associated client or server object has been destroyed. An atomic instruction
|
associated client or server object has been destroyed. An atomic instruction
|
||||||
based class, ScopeRunner, was implemented to achieve this since reader-writer
|
based class, ScopeRunner, was implemented to achieve this since reader-writer
|
||||||
locks proved more resource intensive for this specific task.
|
locks proved more resource intensive for this specific task. In detail, a
|
||||||
|
ScopeRunner object has an internal atomic counter that is increased when an
|
||||||
|
asynchronous handler is run. At the end of the handler, the counter is
|
||||||
|
decreased. When the destructor of a client or server object is called, the
|
||||||
|
ScopeRunner object delays the destructor until its internal counter is 0, then
|
||||||
|
sets the counter to a negative value. Finally, when the internal counter is
|
||||||
|
negative, the handlers are returned from instead of potentially calling methods
|
||||||
|
or using member variables of a destroyed client or server object.
|
||||||
|
|
||||||
|
Compared to using a low-level network library, specialized for a specific task,
|
||||||
|
a slight performance overhead is expected when using the more generalized
|
||||||
|
Simple-Web-Server library. The various utility and safety features, and code
|
||||||
|
abstractions contribute to this overhead, but a good balance between safety,
|
||||||
|
usability and speed is continuously sought during development of this library.
|
||||||
|
Regular expressions can for instance be used to define which functions to be
|
||||||
|
called for specific request paths. This can be convenient for the library user,
|
||||||
|
but a more specific algorithm can be more efficient than using regular
|
||||||
|
expressions.
|
||||||
|
|
||||||
The Asio C++ Library [@asio] is currently proposed to the C++ standard library
|
The Asio C++ Library [@asio] is currently proposed to the C++ standard library
|
||||||
[@wakely]. If accepted in one of the future revisions of the C++ programming
|
[@wakely]. If accepted in one of the future revisions of the C++ programming
|
||||||
|
|
@ -57,7 +74,10 @@ library.
|
||||||
Simple-Web-Server is used in teaching at the Norwegian University of Science and
|
Simple-Web-Server is used in teaching at the Norwegian University of Science and
|
||||||
Technology, and used in many external projects, for instance in the
|
Technology, and used in many external projects, for instance in the
|
||||||
multi-purpose emulation framework MAME [@mame]. The library was also used in the
|
multi-purpose emulation framework MAME [@mame]. The library was also used in the
|
||||||
senior thesis by Chung and Callin [@chung].
|
senior thesis by Chung and Callin [@chung]. Furthermore, one of the motivations
|
||||||
|
for the Simple-Web-Server project was to create a HTTP/1.1 library that was
|
||||||
|
relatively easy to modify and extend to suit a specific need, which could also
|
||||||
|
be positive with regards to source code contributions to the project.
|
||||||
|
|
||||||
There are several alternatives to Simple-Web-Server. Most notably Boost.Beast
|
There are several alternatives to Simple-Web-Server. Most notably Boost.Beast
|
||||||
[@beast], but this library is made for library authors and is thus harder to
|
[@beast], but this library is made for library authors and is thus harder to
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue