<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src/go/unit/unit.go, branch archive/overlappingWriteUnion</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Go: moving source files to the root of the project.</title>
<updated>2019-12-24T14:59:52+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2019-12-24T14:59:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=f5a2984acf9a562b6b1eb45a21d9af2be2415659'/>
<id>f5a2984acf9a562b6b1eb45a21d9af2be2415659</id>
<content type='text'>
This patch includes packaging changes related to files move.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch includes packaging changes related to files move.
</pre>
</div>
</content>
</entry>
<entry>
<title>Go: do not store pointer to Go object.</title>
<updated>2019-09-18T15:31:14+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2019-09-18T15:31:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=84e4a6437f69b14b1cafbe7915447fdcf1d87f68'/>
<id>84e4a6437f69b14b1cafbe7915447fdcf1d87f68</id>
<content type='text'>
To pass Go object references to C and back we use hack with casting to
unsafe and then to uintptr.  However, we should not store such references
because Go not guaratnee it will be available by the same address.
Introducing map with integer key helps to avoid dereference stored address.

This closes #253 and #309 issues on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To pass Go object references to C and back we use hack with casting to
unsafe and then to uintptr.  However, we should not store such references
because Go not guaratnee it will be available by the same address.
Introducing map with integer key helps to avoid dereference stored address.

This closes #253 and #309 issues on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Unit application library.</title>
<updated>2018-08-06T14:27:33+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2018-08-06T14:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=1bb22d1e922c87d3c86c67bdce626767ee48fb5c'/>
<id>1bb22d1e922c87d3c86c67bdce626767ee48fb5c</id>
<content type='text'>
Library now used in all language modules.
Old 'nxt_app_*' code removed.

See src/test/nxt_unit_app_test.c for usage sample.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Library now used in all language modules.
Old 'nxt_app_*' code removed.

See src/test/nxt_unit_app_test.c for usage sample.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introducing Unit version check in Go package.</title>
<updated>2017-12-13T15:12:13+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2017-12-13T15:12:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=799cff5f3e226d8a82a767714c59815939a989dd'/>
<id>799cff5f3e226d8a82a767714c59815939a989dd</id>
<content type='text'>
To communicate with the Go program, Unit setup environment variable
named NXT_GO_PORTS with value contains Unit version, stream id to confirm
application is started, and Unit ports information.  Go Unit package parses
this string and compares runtime version with compile time version.  In case
of parse error or version mismatch, ListenAndServe() returns with the error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To communicate with the Go program, Unit setup environment variable
named NXT_GO_PORTS with value contains Unit version, stream id to confirm
application is started, and Unit ports information.  Go Unit package parses
this string and compares runtime version with compile time version.  In case
of parse error or version mismatch, ListenAndServe() returns with the error.
</pre>
</div>
</content>
</entry>
<entry>
<title>Go: removing request registry.</title>
<updated>2017-12-06T09:16:02+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2017-12-06T09:16:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=d14c0774c7e6f372dfebcfcafdcac718b7e28789'/>
<id>d14c0774c7e6f372dfebcfcafdcac718b7e28789</id>
<content type='text'>
Passing unsafe.Pointers (void *) from Go to C is complicated by an attempt
to make such pointers less unsafe.

A straightforward optimization is to replace 'unsafe.Pointer' with 'uintptr'
(thanks to Xin Huang for the idea: https://stackoverflow.com/a/44826533 ).

As a result, request registry with mutex is gone.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Passing unsafe.Pointers (void *) from Go to C is complicated by an attempt
to make such pointers less unsafe.

A straightforward optimization is to replace 'unsafe.Pointer' with 'uintptr'
(thanks to Xin Huang for the idea: https://stackoverflow.com/a/44826533 ).

As a result, request registry with mutex is gone.
</pre>
</div>
</content>
</entry>
<entry>
<title>nginext has been renamed to unit.</title>
<updated>2017-08-30T21:42:16+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2017-08-30T21:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=f0e9e3ace94c82fab78ab1d4ee8c3042f3e94fdf'/>
<id>f0e9e3ace94c82fab78ab1d4ee8c3042f3e94fdf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
