<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/go, branch gzip-v37</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Tests: using modules in Go.</title>
<updated>2022-01-10T13:07:31+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2022-01-10T13:07:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=1297e8a16a2fb0ccc195c0dd14b678bb2d7fc9fc'/>
<id>1297e8a16a2fb0ccc195c0dd14b678bb2d7fc9fc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced SCM_CREDENTIALS / SCM_CREDS in the socket control msgs.</title>
<updated>2021-11-09T12:48:44+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2021-11-09T12:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=ff6a7053f500414dc74568a4e49adbac7f0cf634'/>
<id>ff6a7053f500414dc74568a4e49adbac7f0cf634</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Go: fixing racing condition on app start.</title>
<updated>2021-11-08T20:04:38+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-11-08T20:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=da0826e99f2c2144ea8e4b9a8b42f30ccf3203fa'/>
<id>da0826e99f2c2144ea8e4b9a8b42f30ccf3203fa</id>
<content type='text'>
Request procesing loop should be started in ready handler to avoid race
between go-routine start and context ready flag assignment.

The issue introduced in 43553aa72111.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Request procesing loop should be started in ready handler to avoid race
between go-routine start and context ready flag assignment.

The issue introduced in 43553aa72111.
</pre>
</div>
</content>
</entry>
<entry>
<title>Moving request limit control to libunit.</title>
<updated>2021-10-28T14:46:54+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-10-28T14:46:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=bba97134e983541e94cf73e93900729e3a3e61fc'/>
<id>bba97134e983541e94cf73e93900729e3a3e61fc</id>
<content type='text'>
Introducting application graceful stop.  For now only used when application
process reach request limit value.

This closes #585 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introducting application graceful stop.  For now only used when application
process reach request limit value.

This closes #585 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Go: removing C proxy functions and re-using goroutines.</title>
<updated>2020-11-18T19:33:53+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-11-18T19:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=8132e1f700934a32bc9e3fb0ab66f550a335a326'/>
<id>8132e1f700934a32bc9e3fb0ab66f550a335a326</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introducing the shared application port.</title>
<updated>2020-08-11T16:20:15+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T16:20:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=83595606121a821f9e3cef0f0b7e7fe87eb1e50a'/>
<id>83595606121a821f9e3cef0f0b7e7fe87eb1e50a</id>
<content type='text'>
This is the port shared between all application processes which use it to pass
requests for processing.  Using it significantly simplifies the request
processing code in the router.  The drawback is 2 more file descriptors per each
configured application and more complex libunit message wait/read code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the port shared between all application processes which use it to pass
requests for processing.  Using it significantly simplifies the request
processing code in the router.  The drawback is 2 more file descriptors per each
configured application and more complex libunit message wait/read code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adding a reference counter to the libunit port structure.</title>
<updated>2020-08-11T16:20:06+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T16:20:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=bf647588ff781e606651f001b53a4e83bb34c000'/>
<id>bf647588ff781e606651f001b53a4e83bb34c000</id>
<content type='text'>
The goal is to minimize the number of (pid, id) to port hash lookups which
require a library mutex lock.  The response port is found once per request,
while the read port is initialized at startup.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The goal is to minimize the number of (pid, id) to port hash lookups which
require a library mutex lock.  The response port is found once per request,
while the read port is initialized at startup.
</pre>
</div>
</content>
</entry>
<entry>
<title>Libunit refactoring: port management.</title>
<updated>2020-08-11T16:19:55+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T16:19:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=ec3389b63bd7a9159d2be4a2863140f75095c7d3'/>
<id>ec3389b63bd7a9159d2be4a2863140f75095c7d3</id>
<content type='text'>
- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance reference counts for a safer resource
release
- Added the router main port initialization
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance reference counts for a safer resource
release
- Added the router main port initialization
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolving a racing condition while adding ports on the app's side.</title>
<updated>2020-04-10T13:21:58+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-04-10T13:21:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=58cc13ab291cac5b13462006e3feb780178ef5f3'/>
<id>58cc13ab291cac5b13462006e3feb780178ef5f3</id>
<content type='text'>
An earlier attempt (ad6265786871) to resolve this condition on the
router's side added a new issue: the app could get a request before
acquiring a port.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An earlier attempt (ad6265786871) to resolve this condition on the
router's side added a new issue: the app could get a request before
acquiring a port.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing application process infinite loop.</title>
<updated>2020-03-30T11:18:51+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-03-30T11:18:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=0935630cba069d6619e967404bb6c7c2a93fbe7e'/>
<id>0935630cba069d6619e967404bb6c7c2a93fbe7e</id>
<content type='text'>
Main process exiting before app process init may have caused hanging.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Main process exiting before app process init may have caused hanging.
</pre>
</div>
</content>
</entry>
</feed>
