OLD | NEW |
1 // Copyright 2013 The Go Authors. All rights reserved. | 1 // Copyright 2013 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 // +build freebsd netbsd openbsd | 5 // +build freebsd netbsd openbsd |
6 | 6 |
7 package net | 7 package net |
8 | 8 |
9 import ( | 9 import ( |
10 "os" | 10 "os" |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 } | 245 } |
246 s.WakeFD(pd, mode, nil) | 246 s.WakeFD(pd, mode, nil) |
247 } | 247 } |
248 } | 248 } |
249 } | 249 } |
250 | 250 |
251 func (pd *pollDesc) Close() { | 251 func (pd *pollDesc) Close() { |
252 } | 252 } |
253 | 253 |
254 func (pd *pollDesc) Lock() { | 254 func (pd *pollDesc) Lock() { |
| 255 if pd.pollServer == nil { |
| 256 return |
| 257 } |
255 pd.pollServer.Lock() | 258 pd.pollServer.Lock() |
256 } | 259 } |
257 | 260 |
258 func (pd *pollDesc) Unlock() { | 261 func (pd *pollDesc) Unlock() { |
| 262 if pd.pollServer == nil { |
| 263 return |
| 264 } |
259 pd.pollServer.Unlock() | 265 pd.pollServer.Unlock() |
260 } | 266 } |
261 | 267 |
262 func (pd *pollDesc) Wakeup() { | 268 func (pd *pollDesc) Wakeup() { |
| 269 if pd.pollServer == nil { |
| 270 return |
| 271 } |
263 pd.pollServer.Wakeup() | 272 pd.pollServer.Wakeup() |
264 } | 273 } |
265 | 274 |
266 func (pd *pollDesc) PrepareRead() error { | 275 func (pd *pollDesc) PrepareRead() error { |
267 if pd.rdeadline.expired() { | 276 if pd.rdeadline.expired() { |
268 return errTimeout | 277 return errTimeout |
269 } | 278 } |
270 return nil | 279 return nil |
271 } | 280 } |
272 | 281 |
(...skipping 14 matching lines...) Expand all Loading... |
287 | 296 |
288 func (pd *pollDesc) WaitWrite() error { | 297 func (pd *pollDesc) WaitWrite() error { |
289 err := pd.pollServer.AddFD(pd, 'w') | 298 err := pd.pollServer.AddFD(pd, 'w') |
290 if err == nil { | 299 if err == nil { |
291 err = <-pd.cw | 300 err = <-pd.cw |
292 } | 301 } |
293 return err | 302 return err |
294 } | 303 } |
295 | 304 |
296 func (pd *pollDesc) Evict() bool { | 305 func (pd *pollDesc) Evict() bool { |
| 306 if pd.pollServer == nil { |
| 307 return false |
| 308 } |
297 return pd.pollServer.Evict(pd) | 309 return pd.pollServer.Evict(pd) |
298 } | 310 } |
299 | 311 |
300 // Spread network FDs over several pollServers. | 312 // Spread network FDs over several pollServers. |
301 | 313 |
302 var pollMaxN int | 314 var pollMaxN int |
303 var pollservers []*pollServer | 315 var pollservers []*pollServer |
304 var startServersOnce []func() | 316 var startServersOnce []func() |
305 | 317 |
306 func init() { | 318 func init() { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 func setWriteDeadline(fd *netFD, t time.Time) error { | 361 func setWriteDeadline(fd *netFD, t time.Time) error { |
350 fd.pd.wdeadline.setTime(t) | 362 fd.pd.wdeadline.setTime(t) |
351 return nil | 363 return nil |
352 } | 364 } |
353 | 365 |
354 func setDeadline(fd *netFD, t time.Time) error { | 366 func setDeadline(fd *netFD, t time.Time) error { |
355 setReadDeadline(fd, t) | 367 setReadDeadline(fd, t) |
356 setWriteDeadline(fd, t) | 368 setWriteDeadline(fd, t) |
357 return nil | 369 return nil |
358 } | 370 } |
OLD | NEW |