Mailslot

Go To Product Page

In the Microsoft Windows environment, inter-process communication (IPC) is essential for enabling different applications or components to exchange data. One such method, the use of mailslots, provides a simple way for one-way messaging between processes. However, testing and debugging applications that rely on mailslot communications can be cumbersome. Developers often face limitations in simulating a proper mailslot server environment, making it difficult to verify that messages are being sent and received correctly. Without the right tools, identifying issues and ensuring message integrity becomes a significant hurdle. The Mailslot plugin enables creation of server-side mailslots for testing of client applications communication.

Basic Setup

  1. In IO Ninja, click the “New Session” dropdown and select a new “Mailslot” session

_images/mailslot-new-session.png
  1. Enter a name for your mailslot server in the “Mailslot:” bar.

_images/mailslot-server-name.png
  1. Click the “Open” button on the far right of the “Mailslot:” bar.

_images/mailslot-open.png
  1. Adjust settings as needed via the “Settings” button (see “Settings” section below for details)

Settings

_images/mailslot-settings.png

Setting

Description

Default

Mailslot name

Name of the mailslot server.

Read parallelism

Maximum number of read requests to submit to tdevmon at the same time. Having more than one pending read at a time helps prevent notification loss in IO-intensive scenarios (after filling one user buffer, tdevmon can immediately switch to the next one without any waiting). Increasing this number beyond 4 usually won’t yield any extra gains.

4

Read block size (B)

The size of each individual read block submitted to tdevmon.

4KB

RX buffer size (B)

The full size of the incoming data (RX) buffer. Affects read throughput.

16KB

Keep read block size

Don’t merge read blocks in RX buffer. Incoming data blocks coming in quick succession can be merged together so that IO Ninja writes them to log as a whole. When this option is set to True, blocks are written to the log without merging, i.e., exactly as they are received from the underlying transport.

False

RX buffer full notifications

Toggle warnings in log about the incoming data (RX) buffer getting full.

False