profile
viewpoint

lostsource/backlight5 4

Adds backlight to a Video element using Canvas and CSS3

lostsource/SimpleRTCData 4

Browser-to-Browser Messaging Simplified

lostsource/devtools-client 1

Provides NodeJS API for instrumentation of the V8 Debugger (experimental)

lostsource/angular-promise-tracker 0

Easily add spinners or general request tracking to your angular app

lostsource/buffer-read-await 0

asynchronously read data from incoming buffer stream

lostsource/CryptoJS 0

Copy of Google Code hosted CryptoJS project adjusted for custom usage.

lostsource/devtools-docs 0

The documentation for Chrome DevTools

issue commentLMAX-Exchange/disruptor

It's difficult to navigate through the different Github Pages documentation pages

@Palmr Have you actually managed to get Jekyll to work on GitHub pages though? In my experience it was a complete nightmare.

Yes, this was the previous setup we had for github-pages before it got asciidoctored.

swarren12

comment created time in 3 hours

issue commentLMAX-Exchange/disruptor

It's difficult to navigate through the different Github Pages documentation pages

@Palmr Have you actually managed to get Jekyll to work on GitHub pages though? In my experience it was a complete nightmare.

swarren12

comment created time in 3 hours

issue commentLMAX-Exchange/disruptor

It's difficult to navigate through the different Github Pages documentation pages

It's definitely better, having links there is a good thing. Is there no way to make it a global include rather than having to put it in every file? One forgotten include and suddenly there's an orphaned page.

Side-note, having the changelog in there and a project-level markdown file is some less desirable duplication. Didn't even notice it was in added to the doc source since previously there wasn't an obvious link to it.

I am still not 100% sold on asciidoc being better than using jekyll. The effort spent on adciidoc so far does feel like it could have been better spent improving the content of the documentation rather than the build pipeline for it and attempting to fit a square menu-like peg into a round asciidoc shaped hole? Maybe we need to start flexing some of the benefits that asciidoc has?

swarren12

comment created time in 3 hours

push eventreal-logic/aeron

mjpt777

commit sha a13fda8b7f91bfa7addd310a9bd51dc5ace78fb7

[Java] Upgrade to Mockito 3.6.28.

view details

push time in 4 hours

push eventreal-logic/simple-binary-encoding

mjpt777

commit sha 6a9d4532eed95a15f6abf1b60371ddb8ab582070

[Java] Upgrade to Mockito 3.6.28.

view details

push time in 4 hours

push eventreal-logic/aeron

mjpt777

commit sha 512cf8d5e80f1c8392424c59c2c699a02468cfe8

[Java] LogPublisher should clean up existing publication when a new one is added if it has not been done when the election initialises.

view details

push time in 6 hours

issue commentLMAX-Exchange/disruptor

It's difficult to navigate through the different Github Pages documentation pages

I've pushed the simple change to my fork: https://swarren12.github.io/disruptor/ - thoughts on this as a first step would be welcome.

swarren12

comment created time in 20 hours

issue openedLMAX-Exchange/disruptor

It's difficult to navigate through the different Github Pages documentation pages

Since moving the documentation to ASCIIDoc, it's become more difficult to navigate between the various pages.

The index.adoc links to the disruptor.adoc (Technical Paper), changelog.adoc (Changelog) and user-guide/index.adoc (User Guide), but none of these pages have links to the other pages or back to the main page.

There are a couple of ways to address this - the easiest being to stick links between the pages at the top of every document. It's a bit of a rough solution, but it should make things a little better until a better structure for the pages is ready.

created time in 20 hours

push eventreal-logic/aeron

mjpt777

commit sha d237a94c22120cd38e6d1115cfad4dac1bedbfa6

[Java] Disconnect LogAdapter when preparing for new leadership and better handle entry into an election so the consensus module is in correct state when doing consensus work.

view details

push time in a day

issue commentLMAX-Exchange/disruptor

Take a long hard look at the benchmarks and make them JMH

Since #314 we now have JMH benchmarks in the code. Need to add more and consider where we can find a stable environment to run them and record results.

Palmr

comment created time in a day

issue commentLMAX-Exchange/disruptor

The examples are not all runnable or documented

I have moved the examples to their own sourceset as of #333 given they were not tests so don't really live in the tests sourceset.

Palmr

comment created time in a day

issue openedLMAX-Exchange/disruptor

Take a long hard look at the benchmarks and make them JMH

There are many classes and tests under the "perf" sourceset. Not sure what all of these do, if they're relevant etc.

There is currently no way to track performance of the Disruptor in CI. Using some standard tools like JMH we can write benchmarks which output results in a standard way for tracking & display.

created time in a day

push eventLMAX-Exchange/disruptor

Nick Palmer

commit sha 856af3e5091177f954f4f174ea14ff05b1fda13a

Move examples out of test into their own source set

view details

Simon Warren

commit sha db55bb2f40131f327383983631c5f6ee436f793c

Merge pull request #333 from Palmr/examples Move examples out of test into their own source set

view details

github-action

commit sha 8446f2fc57cafeb76b4428a32219413a8ac94f84

Simple GitHub Pages Deploy Action

view details

push time in a day

issue openedLMAX-Exchange/disruptor

The examples are not all runnable or documented

We should take a look at all the existing samples and see if they make sense, document them better and make sure they're using modern syntax.

created time in a day

push eventLMAX-Exchange/disruptor

Nick Palmer

commit sha 856af3e5091177f954f4f174ea14ff05b1fda13a

Move examples out of test into their own source set

view details

Simon Warren

commit sha db55bb2f40131f327383983631c5f6ee436f793c

Merge pull request #333 from Palmr/examples Move examples out of test into their own source set

view details

push time in a day

PR opened LMAX-Exchange/disruptor

Reviewers
Move examples out of test into their own source set
+336 -239

0 comment

19 changed files

pr created time in a day

GollumEvent

pull request commentreal-logic/simple-binary-encoding

[C#] Fix repeated group buffer overflow

Thanks

j4b6ski

comment created time in 2 days

push eventreal-logic/simple-binary-encoding

Jakub Bartmiński

commit sha 4437ae5eb8395f6227da2b0f7980846e15e5a816

[C#] Fix repeated group buffer overflow (#823) On a repeated group in the WrapForEncode, the parentMessage.Limit has two purposes: 1. It is used as a buffer offset for the _dimensions helper Wrap method 2. The assignment to it has a side effect of checking that we do not exceed the underlying DirectBuffer's capacity However notice that currently this assignment happens after writing to the _dimensions helper properties BlockLength and NumInGroup, i.e. the writes are done *before* we check for buffer overflow. Underneath these are direct writes to the byte* managed by the DirectBuffer, resulting in an unchecked, unsafe buffer overflow. To fix this the Limit has to be increased right after the call to the _dimensions.Wrap, before writes to BlockLength and NumInGroup The same occurs in the Decode method, only reading unsafe, invalid memory instead of writing to it. Also fixed _actingVersion was being used before it's assigned in the Encode

view details

push time in 2 days

PR merged real-logic/simple-binary-encoding

[C#] Fix repeated group buffer overflow

This actually broke code I was working on in a very nasty way when the buffer size was too small - I was trying to use the DirectBuffer's bufferOverflow delegate and some bytes were getting eaten when expanding the buffer.

Explanation in the commit msg:

On a repeated group in the WrapForEncode, the parentMessage.Limit has two purposes:

  1. It is used as a buffer offset for the _dimensions helper Wrap method
  2. The assignment to it has a side effect of checking that we do not exceed the underlying DirectBuffer's capacity

However notice that currently this assignment happens after writing to the _dimensions helper properties BlockLength and NumInGroup, i.e. the writes are done before we check for buffer overflow. Underneath these are direct writes to the byte* managed by the DirectBuffer, resulting in an unchecked, unsafe buffer overflow. To fix this the Limit has to be increased right after the call to the _dimensions.Wrap, before writes to BlockLength and NumInGroup

The same occurs in the Decode method, only reading unsafe, invalid memory instead of writing to it. Also fixed _actingVersion was being used before it's assigned in the Encode

+3 -3

0 comment

1 changed file

j4b6ski

pr closed time in 2 days

push eventreal-logic/aeron

Dmitry Vyazelenko

commit sha e3b8af6e55f1f6128e379db98df7cad9a7544123

[Java] Fix a race in re-scheduling timers with the same correlationId.

view details

push time in 2 days

push eventreal-logic/aeron

mjpt777

commit sha c5bc17c7967a4ba663638478e1c72f6d5da7ffaf

[C] Warnings and type fixes.

view details

push time in 2 days

push eventreal-logic/aeron

mjpt777

commit sha d86fd594a86dfd0bd1cee982b1448b53c3fec1a6

[C] Warnings and type fixes.

view details

push time in 2 days

push eventreal-logic/aeron

mjpt777

commit sha bed1195c3d802c9a5d5a5dc988b2098c5fd6d036

[C] Warnings and type fixes.

view details

push time in 2 days

push eventreal-logic/aeron

mjpt777

commit sha 694255f35db9a08e4844464b3061d0233f18f7ee

[C] Warnings and type fixes.

view details

push time in 2 days

push eventreal-logic/aeron

mjpt777

commit sha 02c65f2605bf3aff782f3ce5e03c0a82b7e007d8

[C] Warnigns and type fixes.

view details

push time in 2 days

push eventreal-logic/aeron

Dmitry Vyazelenko

commit sha 6cfdad9db4be8daa4dd951bd8beab50e22af88ff

[C/Java] Align event logging between Java and C (#1091) * [Java] Add logging events for when neighbours are added or removed during name resolution. * [Java] Rename dissector methods. * [C] Align event initialization between Java and C versions, i.e. parse event log string using the same names and/or values. * [Java] Handle spaces in the event code list. * [Java] No spaces in the events list. * [C] No spaces in the CSV list. * [C] Use `aeron_tokenise` when parsing events list. * [C] Add a test to assert that special words can appear in the events list. * [C] Enable CMD_IN/CMD_OUT events individually. * [C] Add mask support for compatibility. * [Java] Log IpcPublication cleanup. * [C] Use sparse arrays to enable O(1) lookup of CMD_IN/OUT events. * [C] Simplify test. * [Java] Use American spelling for neighbor to match Java and C code. * [C] Use American spelling for neighbor to match Java and C code. * [C] Log name resoltion neighbor change events (added/removed). * [C] Remove unused imports. * [C] Fix test. * [C] Use nano clock for clocking log messages. * [C] Format message header the same way Java does. * [Java] Fix merge conflicts. * [C] Add logging for cleanup commands (WIP). * [C] Fix post-merge compilation issues. * [C] Pass channel length after channel. * [C] Move a call to remove_image_cleanup_func from aeron_publication_image_entry_delete to aeron_receive_channel_endpoint_entry_delete, because it is where endpoint is disconnected thus loosing channel URI info. * [C] Implement logging of the cleanup publication/subscription/image commands and pass channel_length before channel. * [C] Free channel field upon close of the aeron_ipc_publication_t. * [C] Add logging hooks for add/remove of sender and receiver endpoints. * [C] Implement logging when sender/receiver endpoints are added/removed. * [C] Use 'all' to enable all logging events in C media driver. * [Java] Use 'all' to enable all logging events for the C media driver. * [C] Fix compilation errors on MSVC. * [C] Fix compiler warnings. * [C] Use `strndup` to copy events string and free copy only upon return from the method. * [C] Move `strdup` definition for MSVC to aeron_strutil.h to avoid declaring it each time. * [C] Use `strdup` to duplicate events string since `strndup` is not available on Windows. * [C] Set correct pointer to NULL when deleting an entry. * [C] Fix issues found during review. * [C] Format after merge.

view details

push time in 2 days

PR merged real-logic/aeron

[C/Java] Align event logging between Java and C

Changes in this PR:

  • Align event initialization between C and Java code, i.e. add support using special words like all, admin as well as event names or numerical codes.

    For example using the following comma-separated list of events CMD_IN_REMOVE_COUNTER,33,NAME_RESOLUTION_NEIGHBOR_ADDED,CMD_OUT_ERROR,FRAME_OUT to set AERON_EVENT_LOG or aeron.event.log property will enable CMD_IN_REMOVE_COUNTER, CMD_OUT_EXCLUSIVE_PUBLICATION_READY, FRAME_OUT, NAME_RESOLUTION_NEIGHBOR_ADDED and CMD_OUT_ERROR events.

  • Support legacy mask-based logging event initialization for the C driver, i.e.:

    • 0xffff - the same as all (enables all events).
    • 0x1 - enables all CMD_IN events (e.g. CMD_IN_ADD_PUBLICATION, CMD_IN_REMOVE_SUBSCRIPTION etc.).
    • 0x2 - enables all CMD_OUT events (e.g. CMD_OUT_PUBLICATION_READY, CMD_OUT_ERROR etc.).
    • 0x4 - enables FRAME_IN event.
    • 0x8, 0x10 - enables FRAME_OUT event.
    • 0x80 - enables UNTETHERED_SUBSCRIPTION_STATE_CHANGE event.
    • The combined masks from the above values can be used to enable multiple events, e.g. 0x8F enables FRAME_IN, FRAME_OUT and UNTETHERED_SUBSCRIPTION_STATE_CHANGE events.
  • Enable individual logging of the CMD_IN/CMD_OUT events in the C driver. Despite using a single hook for the in/out events the logging is only done if a particular event is enabled, i.e. a runtime O(1) check if performed and if it fails logging call is a no op.

  • Add logging for the name resolution neighbor added/removed to the Java driver.

  • Add logging for the IpcPublication cleanup to the Java driver.

  • Add all missing events to the C driver, i.e.:

    • REMOVE_PUBLICATION_CLEANUP
    • REMOVE_SUBSCRIPTION_CLEANUP
    • REMOVE_IMAGE_CLEANUP
    • SEND_CHANNEL_CREATION
    • RECEIVE_CHANNEL_CREATION
    • SEND_CHANNEL_CLOSE
    • RECEIVE_CHANNEL_CLOSE
    • NAME_RESOLUTION_NEIGHBOR_ADDED
    • NAME_RESOLUTION_NEIGHBOR_REMOVED
  • Format logging header the same way as in Java and use nano clock in the C driver.

  • Remove obsolete events from the C driver agent:

    • AERON_RAW_LOG_MAP_OP (0x20)
    • AERON_RAW_LOG_CLOSE_OP (0x40)
    • AERON_DYNAMIC_DISSECTOR_EVENT (0x100)
    • AERON_RAW_LOG_FREE_OP (0x200)

Fixes #1072

+2213 -718

2 comments

41 changed files

vyazelenko

pr closed time in 2 days

issue closedreal-logic/aeron

Align agent logging between Java and C drivers

Currently Java driver logs many more events than the C driver. In addition C driver logs some events that are not logged by the Java driver (e.g. AERON_MAP_RAW_LOG_OP, AERON_MAP_RAW_LOG_OP_CLOSE etc.).

closed time in 2 days

vyazelenko
more