1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-26 16:34:23 +03:00
Commit Graph

21 Commits

Author SHA1 Message Date
Wez Furlong
e090eb9eae
Image decoding is now done in a bg thread
Continuing from the previous commit, this shifts:

* In-memory data -> temporary file
* Image decoding -> background thread

The background thread asynchronously decodes frames and
sends them to the render thread via a bounded channel.

While decoding frames, it writes them, uncompressed, to
a scratch file so that when the animation loops, it is
a very cheap operation to rewind and pull that data
from the file, without having to burn CPU to re-decode
the data from the start.

Memory usage is bounded to 4 uncompressed frames while
decoding, then 3 uncompressed frames (triple buffered)
while looping over the rest.

However, disk usage is N uncompressed frames.

refs: https://github.com/wez/wezterm/issues/3263
2023-03-17 11:41:20 -07:00
Wez Furlong
668b370541 filedescriptor: bump version for package publish 2022-01-21 17:08:23 -07:00
Wez Furlong
dd31d172e9 filedescriptor: 0.8.1 release 2021-08-23 08:59:44 -07:00
Wez Furlong
f78190ec9c filedescriptor: remove anyhow from public interface
Use thiserror instead
2021-05-23 14:24:01 -07:00
Robin Bernon
ed331542ee Adding ability to redirect std to filedescriptor but only on windows for now
Adding unix part of std redirect code. Also modifying existing changes based on feedback from the initial PR.

More changes based on feedback from PR.

Non linux unix OS's forced to use dup2 instead of dup3

Avoiding disposal issues with fd.

Small bit of refactoring plus some more ammendments based on more PR feedback.

Non linux compile issue fix.

Adding return

Another fix

Another fix

More amendments

fmt correction

closes: https://github.com/wez/wezterm/pull/816
closes: https://github.com/wez/wezterm/pull/788
closes: https://github.com/wez/wezterm/issues/786
2021-05-23 13:36:50 -07:00
Wez Furlong
aae287c4f2 fix filedescriptor::poll on macos
Need to use the subsecond microsecond value, rather than the total
microsecond value, otherwise `select(2)` will yield EINVAL.

The wezterm changes show where this error was bubbling up
and breaking the tls client code.
2020-09-10 13:58:14 -07:00
Wez Furlong
180ff0d71a filedescriptor: drop unused thiserror dep
refs: https://github.com/wez/wezterm/pull/186
2020-06-13 09:55:18 -07:00
Wez Furlong
f3e42c3d2a point to local filedescriptor crate 2020-01-26 09:15:24 -08:00
Wez Furlong
8f1878c92c filedescriptor: use winsock send/recv and respect non-blocking mode 2020-01-15 22:55:36 -08:00
Wez Furlong
08b0017c16 add FileDescriptor::set_non_blocking 2020-01-15 08:24:41 -08:00
Wez Furlong
55b4a08131 failure -> anyhow + thiserror 2019-12-14 20:06:25 -08:00
Wez Furlong
b9ae1a709d fix macos build 2019-07-16 07:09:35 -07:00
Wez Furlong
33933ec523 filedescriptor: probe and remember filetype at construction
This avoids a deadlock waiting for the named pipe information to be
returned if we're probing during drop().  This does make the
OwnedHandle struct slightly larger on windows.
2019-07-16 00:27:10 -07:00
Wez Furlong
5ac61ec8d3 expand socket descriptor concept
I didn't notice that windows has separate traits for raw sockets,
so blanket impls for things that returned RawHandle's were not
applying on windows in the same way that they were on unix systems.
2019-06-19 11:11:06 -07:00
Wez Furlong
240bc8033c prep for filedescriptor release 2019-06-18 23:35:53 -07:00
Wez Furlong
9ff22f9c09 add socketpair, with wip on windows 2019-06-18 08:31:27 -07:00
Wez Furlong
2c8e36648b filedescriptor: fix a silly typo, enhance docs 2019-06-01 08:19:18 -07:00
Wez Furlong
d518c9b2c9 bump filedescriptor crate version to pickup pipe inheritance on windows 2019-05-24 21:26:23 -07:00
Wez Furlong
a9fd318095 prep for publishing filedescriptor to crates.io 2019-05-19 14:27:11 -07:00
Wez Furlong
9271c130c5 make filedescriptor crate compile on windows 2019-05-18 10:30:28 -07:00
Wez Furlong
b0d1a56eaa move filedescriptor to its own crate 2019-04-22 21:20:33 -07:00