The source code to pass a channel to the function is given below. The given program is compiled and executed on UBUNTU 18.04 successfully.
// Rust program to pass a channel
// to the function
use std::thread;
use std::sync::mpsc;
fn fun(chnl: mpsc::Sender<i32>) {
// Send a integer value
chnl.send(786).unwrap();
}
fn main() {
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
// Pass channel as a parameter.
fun(tx);
});
// Receive message from thread.
let val = rx.recv().unwrap();
println!("Message received: {}", val);
}
Output:
$ rustc main.rs
$ ./main
Message received: 786
Explanation:
Here, we created two functions fun() and main(). The fun() function accepts the channel as a parameter and sends the message to the main thread. And, we created a thread and called the fun() function to send a message. Then we received the message using the recv() function and printed the received message.
Program/Source Code:
The source code to pass a channel to the function is given below. The given program is compiled and executed on UBUNTU 18.04 successfully.
Output:
Explanation:
Here, we created two functions fun() and main(). The fun() function accepts the channel as a parameter and sends the message to the main thread. And, we created a thread and called the fun() function to send a message. Then we received the message using the recv() function and printed the received message.
need an explanation for this answer? contact us directly to get an explanation for this answer