postgres/
cancel_token.rs

1use tokio::runtime;
2use tokio_postgres::tls::MakeTlsConnect;
3use tokio_postgres::{Error, Socket};
4
5/// The capability to request cancellation of in-progress queries on a
6/// connection.
7#[derive(Clone)]
8pub struct CancelToken(tokio_postgres::CancelToken);
9
10impl CancelToken {
11    pub(crate) fn new(inner: tokio_postgres::CancelToken) -> CancelToken {
12        CancelToken(inner)
13    }
14
15    /// Attempts to cancel the in-progress query on the connection associated
16    /// with this `CancelToken`.
17    ///
18    /// The server provides no information about whether a cancellation attempt was successful or not. An error will
19    /// only be returned if the client was unable to connect to the database.
20    ///
21    /// Cancellation is inherently racy. There is no guarantee that the
22    /// cancellation request will reach the server before the query terminates
23    /// normally, or that the connection associated with this token is still
24    /// active.
25    pub fn cancel_query<T>(&self, tls: T) -> Result<(), Error>
26    where
27        T: MakeTlsConnect<Socket>,
28    {
29        runtime::Builder::new_current_thread()
30            .enable_all()
31            .build()
32            .unwrap() // FIXME don't unwrap
33            .block_on(self.0.cancel_query(tls))
34    }
35}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy