|
8 | 8 | state::{EndpointWithClient, Pollable, State, StateError, StateErrorKind}, |
9 | 9 | utils::env::{WAYLAND_DISPLAY, WAYLAND_SOCKET, WL_PROXY_DEBUG, XDG_RUNTIME_DIR}, |
10 | 10 | }, |
| 11 | + linearize::Linearize, |
11 | 12 | std::{ |
12 | 13 | cell::{Cell, RefCell}, |
13 | 14 | collections::HashMap, |
@@ -38,6 +39,11 @@ enum Server { |
38 | 39 | DisplayName(String), |
39 | 40 | } |
40 | 41 |
|
| 42 | +#[derive(Copy, Clone, Linearize)] |
| 43 | +pub(crate) enum StaticPollableIds { |
| 44 | + Server, |
| 45 | +} |
| 46 | + |
41 | 47 | impl StateBuilder { |
42 | 48 | pub(super) fn new(baseline: Baseline) -> Self { |
43 | 49 | Self { |
@@ -115,15 +121,14 @@ impl StateBuilder { |
115 | 121 | .map_err(|e| StateErrorKind::Connect(name.to_string(), e.into()))?; |
116 | 122 | Some(Rc::new(socket.into())) |
117 | 123 | }; |
118 | | - const SERVER_ENDPOINT_ID: u64 = 0; |
119 | 124 | let mut endpoints = HashMap::new(); |
120 | 125 | let mut server = None; |
121 | 126 | if let Some(server_fd) = &server_fd { |
122 | | - let s = Endpoint::new(SERVER_ENDPOINT_ID, server_fd); |
| 127 | + let s = Endpoint::new(StaticPollableIds::Server as u64, server_fd); |
123 | 128 | s.idl.acquire(); |
124 | 129 | s.idl.acquire(); |
125 | 130 | endpoints.insert( |
126 | | - SERVER_ENDPOINT_ID, |
| 131 | + StaticPollableIds::Server as u64, |
127 | 132 | Pollable::Endpoint(EndpointWithClient { |
128 | 133 | endpoint: s.clone(), |
129 | 134 | client: None, |
@@ -153,7 +158,7 @@ impl StateBuilder { |
153 | 158 | let state = Rc::new(State { |
154 | 159 | baseline: self.baseline, |
155 | 160 | poller, |
156 | | - next_pollable_id: Cell::new(SERVER_ENDPOINT_ID + 1), |
| 161 | + next_pollable_id: Cell::new(StaticPollableIds::LENGTH as u64), |
157 | 162 | server, |
158 | 163 | destroyed: Default::default(), |
159 | 164 | handler: Default::default(), |
@@ -190,7 +195,7 @@ impl StateBuilder { |
190 | 195 | state.change_interest(server, |i| i | poll::READABLE); |
191 | 196 | state |
192 | 197 | .poller |
193 | | - .register(0, server.socket.as_fd()) |
| 198 | + .register(server.id, server.socket.as_fd()) |
194 | 199 | .map_err(StateErrorKind::PollError)?; |
195 | 200 | let display = WlDisplay::new(&state, 1); |
196 | 201 | display |
|
0 commit comments