Skip to content

Instantly share code, notes, and snippets.

View eugeneo's full-sized avatar

Eugene Ostroukhov eugeneo

View GitHub Profile
#include <memory>
#include <thread>
#include <vector>
#include <gtest/gtest.h>
#include "absl/base/thread_annotations.h"
#include <grpc/grpc.h>
#include <grpcpp/create_channel.h>
template <size_t I, size_t O>
static std::vector<float> AcrossMul(std::span<float, I> inp,
std::span<float, (I + 1) * O> parameters) {
auto it = parameters.begin() + O;
std::vector<float> result(parameters.begin(), it);
for (size_t i = 0; i < I; ++i) {
for (size_t j = 0; j < O; ++j) {
result[j] += inp[i] * *(it++);
}
}
@eugeneo
eugeneo / Failure log
Created February 24, 2024 00:39
Failure on Windows
I0223 20:40:33.895000000 33380 src/core/lib/surface/server.cc:1967] grpc_server_shutdown_and_notify(server=000001C3B944FF40, cq=000001C3B944D730, tag=00000000000000C8)
E0223 20:40:33.895000000 33380 test/core/end2end/cq_verifier.cc:425] Verify empty completion queue for 1000ms
I0223 20:40:33.895000000 33380 src/core/lib/surface/completion_queue.cc:965] grpc_completion_queue_next(cq=000001C3B944D730, deadline=gpr_timespec { tv_sec: 8, tv_nsec: 73999799, clock_type: 0 }, reserved=0000000000000000)
I0223 20:40:34.907000000 33380 src/core/lib/surface/call.cc:4278] grpc_call_start_batch(call=000001C3B992B2F0, ops=000001C3B94586D0, nops=3, tag=0000000000000066, reserved=0000000000000000)
I0223 20:40:34.907000000 33380 src/core/lib/surface/call.cc:1559] ops[0]: SEND_INITIAL_METADATA(nil)
I0223 20:40:34.907000000 33380 src/core/lib/surface/call.cc:1559] ops[1]: SEND_STATUS_FROM_SERVER status=12 details=xyz(nil)
I0223 20:40:34.907000000 33380 src/core/lib/surface/call.cc:1559] ops[2]: RECV_CLOSE_ON_SERVER cancelled=0x
@eugeneo
eugeneo / benchmark.cc
Last active February 9, 2024 04:11
Compare AnyInvocable to virtual method
#include <array>
#include <cstddef>
#include <memory>
#include <random>
#include <span>
#include <vector>
#include <benchmark/benchmark.h>
#include "absl/functional/any_invocable.h"
@eugeneo
eugeneo / worker-suspends-5-secs
Last active October 3, 2023 02:46
Worker that suspends the main thread for 5 seconds
#!/usr/bin/env node
const { Session } = require("node:inspector");
const { promisify } = require("node:util");
const { Worker, isMainThread, parentPort } = require("node:worker_threads");
async function workerMain() {
console.log("Worker started");
const session = new Session();
session.connectToMainThread();
try {
// (Ctrl|Cmd)+Shift+P: Open User Tasks
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Run Tests",
"type": "process",
"command": "/usr/local/google/home/eostroukhov/work/grpc/local/bin/ibazel",
const readline = require('readline');
const ops = [
{ id: 1 },
{ id: 2 },
{ id: 3 },
];
const pendingOps = {};
const path = require('path');
function PrintScope(scopeId) {
SendMessage('Runtime.getProperties', {
'objectId': scopeId,
'ownProperties': false,
'accessorPropertiesOnly': false,
'generatePreview': true
}).then(result => {
for (var k of result['result']) {