<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/std/src/sys/solid, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-01-11T19:10:25+00:00</updated>
<entry>
<title>std: begin moving platform support modules into `pal`</title>
<updated>2024-01-11T19:10:25+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2024-01-11T19:10:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=99128b7e45f8b95d962da2e6ea584767f0c85455'/>
<id>urn:sha1:99128b7e45f8b95d962da2e6ea584767f0c85455</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kmc-solid: Implement `{From,Into}Inner&lt;OwnedFd&gt;` for `Socket`</title>
<updated>2023-11-08T01:51:59+00:00</updated>
<author>
<name>Tomoaki Kawada</name>
<email>kawada@kmckk.co.jp</email>
</author>
<published>2023-08-23T10:06:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=46bc247bd145f3357acb07b7f146ec9514e0a193'/>
<id>urn:sha1:46bc247bd145f3357acb07b7f146ec9514e0a193</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kmc-solid: Remove `FileDesc`</title>
<updated>2023-11-08T01:51:57+00:00</updated>
<author>
<name>Tomoaki Kawada</name>
<email>kawada@kmckk.co.jp</email>
</author>
<published>2023-11-08T01:51:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6d1e4ddf0354e51e3520abfbd32a394f497d3f3b'/>
<id>urn:sha1:6d1e4ddf0354e51e3520abfbd32a394f497d3f3b</id>
<content type='text'>
Removes the private type `std::sys::solid::net::FileDesc`, replacing its
only usage in `std::sys::solid::net::Socket` with `std::os::solid::io::
OwnedFd`.
</content>
</entry>
<entry>
<title>kmc-solid: Replace `{From,Into}Inner&lt;c_int&gt;` impls with `*RawFd` for `Socket`</title>
<updated>2023-11-08T01:48:49+00:00</updated>
<author>
<name>Tomoaki Kawada</name>
<email>kawada@kmckk.co.jp</email>
</author>
<published>2023-08-23T10:07:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cbfab81f3d3fe678c20ed8861fcddda98198db68'/>
<id>urn:sha1:cbfab81f3d3fe678c20ed8861fcddda98198db68</id>
<content type='text'>
Follows how other targets are implemented.
</content>
</entry>
<entry>
<title>Auto merge of #116132 - darthunix:connect_poll, r=cuviper</title>
<updated>2023-10-19T11:22:28+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-10-19T11:22:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3fbcfd2b6f7030cb70328aa759107efc1516912c'/>
<id>urn:sha1:3fbcfd2b6f7030cb70328aa759107efc1516912c</id>
<content type='text'>
Make TCP connect handle EINTR correctly

According to the [POSIX](https://pubs.opengroup.org/onlinepubs/009695399/functions/connect.html) standard, if connect() is interrupted by a signal that is caught while blocked waiting to establish a connection, connect() shall fail and set errno to EINTR, but the connection request shall not be aborted, and the connection shall be established asynchronously. When the connection has been established asynchronously, select() and poll() shall indicate that the file descriptor for the socket is ready for writing.

The previous implementation differs from the recomendation: in a case of the EINTR we tried to reconnect in a loop and sometimes get EISCONN error (this problem was originally detected on MacOS).

1. More details about the problem in an [article](http://www.madore.org/~david/computers/connect-intr.html).
2. The original [issue](https://git.picodata.io/picodata/picodata/tarantool-module/-/issues/157).
</content>
</entry>
<entry>
<title>Make TCP connect() handle EINTR correctly</title>
<updated>2023-10-13T11:12:56+00:00</updated>
<author>
<name>Denis Smirnov</name>
<email>sd@picodata.io</email>
</author>
<published>2023-10-05T09:04:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dfadd177a9738de289a3a6d4b39c08d94f384c1a'/>
<id>urn:sha1:dfadd177a9738de289a3a6d4b39c08d94f384c1a</id>
<content type='text'>
According to the POSIX standard, if connect() is interrupted by a
signal that is caught while blocked waiting to establish a connection,
connect() shall fail and set errno to EINTR, but the connection
request shall not be aborted, and the connection shall be established
asynchronously.

If asynchronous connection was successfully established after EINTR
and before the next connection attempt, OS returns EISCONN that was
handled as an error before. This behavior is fixed now and we handle
it as success.

The problem affects MacOS users: Linux doesn't return EISCONN in this
case, Windows connect() can not be interrupted without an old-fashoin
WSACancelBlockingCall function that is not used in the library.
So current solution gives connect() as OS specific implementation.
</content>
</entry>
<entry>
<title>std: abort instead of panicking if the global allocator uses TLS</title>
<updated>2023-10-04T09:49:48+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2023-10-04T09:49:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b18990b1e973a1fd0a0318a88655dc1907509b17'/>
<id>urn:sha1:b18990b1e973a1fd0a0318a88655dc1907509b17</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: panic when the global allocator tries to register a TLS destructor</title>
<updated>2023-10-03T21:57:37+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2023-10-03T21:13:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fd23276ca87b4b56918e4a87737859cfd77d657c'/>
<id>urn:sha1:fd23276ca87b4b56918e4a87737859cfd77d657c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kmc-solid: Refactor `is_interrupted` to avoid integer overflow</title>
<updated>2023-09-01T02:55:48+00:00</updated>
<author>
<name>Tomoaki Kawada</name>
<email>kawada@kmckk.co.jp</email>
</author>
<published>2023-09-01T02:55:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=eb627ea3392c37cd94e7696dca683ef596c8b66c'/>
<id>urn:sha1:eb627ea3392c37cd94e7696dca683ef596c8b66c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kmc-solid: Directly delegate to `net::is_interrupted` in `std::sys::solid::is_interrupted`</title>
<updated>2023-09-01T02:53:15+00:00</updated>
<author>
<name>Tomoaki Kawada</name>
<email>kawada@kmckk.co.jp</email>
</author>
<published>2023-09-01T02:43:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dc37959ce858e1c3a872449cf289c9d9fa2efd2e'/>
<id>urn:sha1:dc37959ce858e1c3a872449cf289c9d9fa2efd2e</id>
<content type='text'>
</content>
</entry>
</feed>
