Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[doc = "Vrací seznam globálních tagů"]
- #[allow(unused_attributes)]
- pub fn g_get(instanceid: String) -> Response {
- let running = POOL.read().unwrap().contains(&"page_g_get");
- if !running {
- {
- use log::{LOG, THREAD_ID};
- use std::io::Write;
- use std::thread;
- let thread_id = THREAD_ID.with(|i| *i);
- thread::spawn(move || match LOG.lock() {
- Ok(mut lock) => {
- let _ = lock.write_fmt(::std::fmt::Arguments::new_v1_formatted(
- &["WRN ", " [", "] ", "\n"],
- &match (
- &"LOW",
- &thread_id,
- &"page_controller: page_g_get not running, launching...",
- ) {
- (arg0, arg1, arg2) => [
- ::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Display::fmt),
- ::std::fmt::ArgumentV1::new(arg1, ::std::fmt::LowerHex::fmt),
- ::std::fmt::ArgumentV1::new(arg2, ::std::fmt::Display::fmt),
- ],
- },
- &[
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(1usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(2usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ],
- ));
- }
- Err(_) => {
- ::io::_eprint(::std::fmt::Arguments::new_v1(
- &["failed to acquire lock on log mutex\n"],
- &match () {
- () => [],
- },
- ));
- }
- });
- };
- {
- let mut list = POOL.write().unwrap();
- list.push("page_g_get");
- {
- use log::{LOG, THREAD_ID};
- use std::io::Write;
- use std::thread;
- let thread_id = THREAD_ID.with(|i| *i);
- thread::spawn(move || match LOG.lock() {
- Ok(mut lock) => {
- let _ = lock.write_fmt(::std::fmt::Arguments::new_v1_formatted(
- &["INF ", " [", "] ", "\n"],
- &match (
- &"LOW",
- &thread_id,
- &"page_controller: added page_g_get to the pool",
- ) {
- (arg0, arg1, arg2) => [
- ::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Display::fmt),
- ::std::fmt::ArgumentV1::new(arg1, ::std::fmt::LowerHex::fmt),
- ::std::fmt::ArgumentV1::new(arg2, ::std::fmt::Display::fmt),
- ],
- },
- &[
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(1usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(2usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ],
- ));
- }
- Err(_) => {
- ::io::_eprint(::std::fmt::Arguments::new_v1(
- &["failed to acquire lock on log mutex\n"],
- &match () {
- () => [],
- },
- ));
- }
- });
- };
- }
- thread::spawn(|| {
- Command::new("page_g_get")
- .stdout(Stdio::inherit())
- .spawn()
- .expect("page_g_get failed to launch")
- .wait()
- .expect("failed to wait for page_g_get to be killed");
- {
- use log::{LOG, THREAD_ID};
- use std::io::Write;
- use std::thread;
- let thread_id = THREAD_ID.with(|i| *i);
- thread::spawn(move || match LOG.lock() {
- Ok(mut lock) => {
- let _ = lock.write_fmt(::std::fmt::Arguments::new_v1_formatted(
- &["WRN ", " [", "] ", "\n"],
- &match (
- &"LOW",
- &thread_id,
- &"page_controller: page_g_get exited, removing it from the pool...",
- ) {
- (arg0, arg1, arg2) => [
- ::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Display::fmt),
- ::std::fmt::ArgumentV1::new(arg1, ::std::fmt::LowerHex::fmt),
- ::std::fmt::ArgumentV1::new(arg2, ::std::fmt::Display::fmt),
- ],
- },
- &[
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(1usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(2usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ],
- ));
- }
- Err(_) => {
- ::io::_eprint(::std::fmt::Arguments::new_v1(
- &["failed to acquire lock on log mutex\n"],
- &match () {
- () => [],
- },
- ));
- }
- });
- };
- let mut list = POOL.write().unwrap();
- list.retain(|x| *x != "page_g_get");
- });
- }
- let queue = MessageQueue::new(adler32("page_g_get".as_bytes()))
- .create()
- .init()
- .ok()?;
- let recv_id: i32 = rand::random();
- match queue.send((instanceid.inner(), recv_id), 1) {
- Ok(()) => {
- use log::{LOG, THREAD_ID};
- use std::io::Write;
- use std::thread;
- let thread_id = THREAD_ID.with(|i| *i);
- thread::spawn(move || match LOG.lock() {
- Ok(mut lock) => {
- let _ = lock.write_fmt(::std::fmt::Arguments::new_v1_formatted(
- &["INF ", " [", "] ", "\n"],
- &match (
- &"LOW",
- &thread_id,
- &::fmt::format(::std::fmt::Arguments::new_v1_formatted(
- &["page_controller: data sent to page_g_get with key "],
- &match (&recv_id,) {
- (arg0,) => [::std::fmt::ArgumentV1::new(
- arg0,
- ::std::fmt::Display::fmt,
- )],
- },
- &[::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- }],
- )),
- ) {
- (arg0, arg1, arg2) => [
- ::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Display::fmt),
- ::std::fmt::ArgumentV1::new(arg1, ::std::fmt::LowerHex::fmt),
- ::std::fmt::ArgumentV1::new(arg2, ::std::fmt::Display::fmt),
- ],
- },
- &[
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(1usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(2usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ],
- ));
- }
- Err(_) => {
- ::io::_eprint(::std::fmt::Arguments::new_v1(
- &["failed to acquire lock on log mutex\n"],
- &match () {
- () => [],
- },
- ));
- }
- });
- }
- Err(e) => {
- use log::{LOG, THREAD_ID};
- use std::io::Write;
- use std::thread;
- let thread_id = THREAD_ID.with(|i| *i);
- thread::spawn(move || match LOG.lock() {
- Ok(mut lock) => {
- let _ = lock.write_fmt(::std::fmt::Arguments::new_v1_formatted(
- &["ERR ", " [", "] ", "\n"],
- &match (
- &"MED",
- &thread_id,
- &::fmt::format(::std::fmt::Arguments::new_v1_formatted(
- &["page_controller: failed to send data to page_g_get: "],
- &match (&e,) {
- (arg0,) => {
- [::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Debug::fmt)]
- }
- },
- &[::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- }],
- )),
- ) {
- (arg0, arg1, arg2) => [
- ::std::fmt::ArgumentV1::new(arg0, ::std::fmt::Display::fmt),
- ::std::fmt::ArgumentV1::new(arg1, ::std::fmt::LowerHex::fmt),
- ::std::fmt::ArgumentV1::new(arg2, ::std::fmt::Display::fmt),
- ],
- },
- &[
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(0usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(1usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ::std::fmt::rt::v1::Argument {
- position: ::std::fmt::rt::v1::Position::At(2usize),
- format: ::std::fmt::rt::v1::FormatSpec {
- fill: ' ',
- align: ::std::fmt::rt::v1::Alignment::Unknown,
- flags: 0u32,
- precision: ::std::fmt::rt::v1::Count::Implied,
- width: ::std::fmt::rt::v1::Count::Implied,
- },
- },
- ],
- ));
- }
- Err(_) => {
- ::io::_eprint(::std::fmt::Arguments::new_v1(
- &["failed to acquire lock on log mutex\n"],
- &match () {
- () => [],
- },
- ));
- }
- });
- }
- }
- let recv_queue = MessageQueue::new(recv_id)
- .auto_kill(true)
- .create()
- .init()
- .ok()?;
- recv_queue.recv().ok()?
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement