q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Katherine Johnson — Mathematics to the Moon

Katherine Johnson’s mathematical calculations helped guide some of America’s most important early space missions while she confronted the racial and gender barriers faced by Black women in twentieth-century America.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Channel (programming)

In computing, a channel is a model for inter-thread communication and synchronization via message passing. A message may be sent over a channel, and another process or thread is able to receive messages sent over a channel it has a reference to, as a stream. Different implementations of channels may be buffered or not, and either synchronous or asynchronous.

libthread channels

[edit]

The multithreading library, libthread, which was first created for the operating system Plan 9, offers inter-thread communication based on fixed-size channels.

OCaml events

[edit]

The OCaml event module offers typed channels for synchronization. When the module's send and receive functions are called, they create corresponding send and receive events which can be synchronized.

Examples

[edit]

Lua Love2D

[edit]

The Love2D library which uses the Lua programming language implements channels with push and pop operations similar to stacks. The pop operation will block so as long as there is data resident on the stack. A demand operation is equivalent to pop, except it will block until there is data on the stack

-- A string containing code which will be interpreted by a function such as loadstring(),
-- but on the C side to start a native thread.

local threadCode = [[
    love.thread.getChannel("test"):push("Hello world!")
]]


function love.load()
    -- Start the thread.
    
    thread = love.thread.newThread(threadCode)
    thread:start()
    
    -- The thread will block until "Hello world!" is popped off channel test's stack.
    -- Because the channel can be popped from before the thread first executes, there may not be data on the stack.
    -- in that case use :demand() instead of :pop() because :demand() will block until there is data on the stack and then return the data.
    
    print(love.thread.getChannel("test"):demand())
    
    -- The thread can now finish.
end

XMOS XC

[edit]

The XMOS programming language XC provides a primitive type "Chan" and two operators "<:" and ":>" for sending and receiving data from a channel.[1]

In this example, two hardware threads are started on the XMOS, running the two lines in the "par" block. The first line transmits the number 42 through the channel while the second waits until it is received and sets the value of x. The XC language also allows asynchronous receiving on channels through a select statement.

chan c;
int x;
par {
  c <: 42;
  c :> x;
}

Go

[edit]

This snippet of Go code performs similarly to the XC code. First the channel c is created, then a goroutine is spawned which sends 42 through the channel. When the number is put in the channel x is set to 42. Go allows channels to buffer contents, as well as non blocking receiving through the use of a select block.[2]

c := make(chan int)

go func() {c <- 42}()

x := <- c

Rust

[edit]

Rust provides asynchronous channels for communication between threads. Channels allow a unidirectional flow of information between two endpoints: the Sender and the Receiver.[3]

use std::sync::mpsc;
use std::thread;

fn main() {
    let (tx, rx) = mpsc::channel();

    thread::spawn(move || {
        tx.send(123).unwrap();
    });

    let result = rx.recv();
    println!("{:?}", result);
}

Applications

[edit]

In addition to their fundamental use for inter-thread communication, channels can be used as a primitive to implement various other concurrent programming constructs which can be realized as streams. For example, channels can be used to construct futures and promises, where a future is a one-element channel, and a promise is a process that sends to the channel, fulfilling the future.[4] Similarly, iterators can be constructed directly from channels.[5]

List of implementations

[edit]

List of non-standard, library-based implementations of channels

  • For Scala:
    • CSO -- Communicating Scala Objects[6] is a complete DSL for channel-based communication and concurrency whose semantic primitives are generalizations of the OCCAM primitives. CSO has been used since 2007 in the teaching of concurrent programming, and relevant lectures can be found with the ThreadCSO implementation.[7]
  • For C++:
    • stlab[8] This implementation supports splits, and different merge and zip operations. Different executors can be attached to the individual nodes.
  • For Rust:
    • Tokio
    • async-channel
    • crossbeam

References

[edit]
  1. ^ "XMOS Programming Guide | XMOS". Archived from the original on 2016-03-04. Retrieved 2015-05-10.
  2. ^ "Effective Go - the Go Programming Language".
  3. ^ "Channels - Rust By Example". doc.rust-lang.org. Retrieved 28 November 2020.
  4. ^ "Futures Archived 2020-12-04 at the Wayback Machine", Go Language Patterns Archived 2020-11-11 at the Wayback Machine
  5. ^ "Iterators Archived 2020-10-15 at the Wayback Machine", Go Language Patterns Archived 2020-11-11 at the Wayback Machine
  6. ^ Sufrin, Bernard (2021-07-13), ThreadCSO (PDF), retrieved 2023-02-17
  7. ^ Sufrin, Bernard (2021-07-13), ThreadCSO, retrieved 2023-02-17
  8. ^ "stlab is the ongoing work of what was Adobe's Software Technology Lab. The Adobe Source Libraries (ASL), Platform Libraries, and new stlab libraries are hosted on github". 2021-01-31.
[edit]

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Channel (programming)

In computing, a channel is a model for inter-thread communication and synchronization via message passing. A message may be sent over a channel, and another process or thread is able to receive messages sent over a channel it has a reference to, as a stream. Different implementations of channels may be buffered or not, and either synchronous or asynchronous.

MORE →
No preview image
Wikipedia

List of Discovery Channel original programming

The following is a list of television programs currently or formerly broadcast by Discovery Channel.

MORE →
Wikipedia

Disney Channel

Disney Channel is an American pay television channel that serves as the flagship property of Disney Kids & Family, a unit of the Disney Entertainment business segment of the Walt Disney Company. Launched on April 18, 1983, under the name The Disney Channel as a premium channel on top of basic cable television systems, it originally showcased programming towards families due to availability of home television sets locally at the time. It dropped "The" from its name in 1997, with its programming shifting focus to target mainly children and adolescents ages 6–14. The channel showcases original first-run children's television series, theatrically released and original television films and other selected third-party programming. As of November 2023, Disney Channel is available to approximately 70 million pay television households in the United States — down from its peak of 100 million households in 2011. The channel's international footprint, once encompassing 46 channels available in 33 languages, has also diminished due to the launch of Disney+ and competition from streaming media and social media platforms.

MORE →
Wikipedia

The Weather Channel

The Weather Channel (TWC) is an American pay television channel owned by Weather Group, LLC, a subsidiary of Allen Media Group. The channel's headquarters are located in Atlanta, Georgia. Launched on May 2, 1982, the channel broadcasts weather forecasts and weather-related news and analysis, along with documentaries and entertainment programming related to weather. A sister network, Weatherscan, was a digital cable and satellite service that offered 24-hour automated local forecasts and radar imagery. Weatherscan was officially shut down on December 12, 2022. The Weather Channel also produces outsourced weathercasts, notably for CBS News and RFD-TV. As of November 2023, the Weather Channel is available to approximately 68 million pay television households in the United States—down from its 2013 peak of 101 million households. Its influence continues to decline with growing access to smartphones and online sources. In August 2023, it was announced that IBM was selling the Weather Company and its assets to the private equity firm Francisco Partners.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Which Black woman became the first elected to the United States Congress?

Shirley Chisholm, elected in 1968.