►
From YouTube: Rust Lang Meetup - August 2023
Description
Zheng Yan (zypeh) will be sharing about io uring.
A
Talking
down,
okay,
so
first
of
all,
I
want
to
thank
each
other
one
of
you
for
attending
this,
so
really
appreciate
you
guys
take
your
time
out
from
the
busy
schedule,
especially
after
working
our.
So
allow
me
to
use
myself.
My
name
is
Jeffrey
I.
A
Together
with
Ivan
over
here,
so
what
happened?
I've
been
doing
this
for
quite
a
few
years,
so
yeah
we
have
to
meet
up
like
every
two
months
yep.
So
today,
our
main
agenda.
We
will
have
a
talk
by
about
Iowa
urine
right,
so
again
appreciate
for
you
to
really
give
a
talk
and
effort
and
preparations
so
before
that
before
we
get
into
the
topic,
I
would
like
to
spend
some
time
in
our
last
Corner
talking
about
some
decent
update
in
in
Iraq.
A
So,
okay,
this
is
our
social
media,
so
you
can
really
find
us
in
the
telegram
Channel
I.
Think
most
of
you
are
in
here.
Joining
is
a
go
like
Channel,
but
we
do
post
some
updates
as
well
and
we
do
have
a
rock
Malaysia
Facebook
group,
Russia
Malaysia
Facebook
group-
it's
not
very
active,
but
we
started
that
we
still
post
some
upcoming
updates
or
events.
So
if
you
guys
I
want
to
update
our
kids,
our
children
can
join
our
wrestling,
Malaysia
and
Okay.
A
So
so,
first
of
all,
let's
start
with
our
grass
1.07
versions,
which
is
being
released
I
think
last
month
right.
So
there
are
some
key
updates
in
this
version.
One
of
them
are
the
first
first
one
is
a
spouse
bike.
A
So
if
you
guys
knows
right
so
basically
in
short,.
A
You
will
first
need
to
verify
the
version
and
dependency
that
you
use
in
your
program.
So
what
how
it
does
is
you
actually
download
the
index
of
all
upgrades,
which
is
all
the
packages
right
so
on
all
these
index
actually
hosted
in
GitHub
repository,
which
is
in
the
old
way.
So
every
time
when
you
try
to
run
a
rust
program,
you're
actually
sort
of
like
get
cloned
down
the
whole
copy
of
indexes
in
your
local
machine.
So
with
this
actually
causes.
A
A
So
when
you
try
to
deploy
in
your
cicd
you'll
talk
about
amount
of
time
so
with
spots,
I
really
change
the
it's
sort
of
like
an
indexing
protocol,
so
the
way
that
they
actually
enhance
this
process
is
like
they,
instead
of
using
git
flow,
no
downloading
indexes
they're
using
https,
and
all
these
sparse
in-depths
are
actually
sold
in
a
power
system
which
you
can
access
through
index.creates,
IO
yeah,
so
so
previously
in
1.6
something
version.
If
you
want
to
use
fast,
you
have
to
explicitly
config
right
now
in
this
latest
version.
A
It
comes
by
default,
okay,
so
basically,
this
is
a
box
bar,
and
then
we
have
our
one
cell
one
slot.
It's
basically
started
with
a
complete
Community
Driven
packages.
Basically,
in
short,
allows
you
to
create
substance
like
Global
variable
in
Rust
right,
so
once
locked,
it's
it's
a
counterpart
of
one
cell.
One
cell
is
mostly
threaded
threat,
safe
and
one
cell
is
for
single
thread
right,
and
so
in
this
version
they
actually
they're
stabilizable
this
great
and
they
added
to
the
standard
Library.
A
So
you
do
not
need
to
install
use
it.
One
thing
other
packages:
I
can
use
it
straight
from
the
standard
library,
and
then
we
have
some
method
called
instrumental.
A
Basically,
just
to
differentiate
whether
you
are
in
running
screen
or
you
are
in
interactive
mode
right.
So
it's
helpful
if
you
are
working
on
two
weeks
right
so
yeah,
and
then
we
have
another
version
of
class
1.71.
So
some
key
updates
here
is
the
debuggle
visualization
attribute.
So
this
is
sort
of
like
a
new
attribute
that
you
can
add,
switch
support,
Navy's
fault.
So
when
this
focus
is
something
like
a
screen
used
by
Visual
Studio
code
from
an
evaporate
inspection
output
right
so
right
now
they
support
it.
A
So
this
files
actually
contain
a
format
of
what
kind
of
output.
When
the
user
inspects
the
data
structures,
what
is
you
can
customize
the
format
so
right
now
you
can
add
this
attribute,
and
then
we
have
a
const
initialized
trade,
local.
Basically,
you
can
use
cons,
block
to
initialize
variables
inside
three
locals,
so
but
this
this
actually,
this
feature
actually
has
been
a
while
since
in
rocks
it's
not
that
they
did
add
it
into
documentation.
So
a
lot
of
people
are
not
aware
of
it.
A
So
in
this
latest
version
they
add
into
documentation
stuff,
and
then
we
have
battery
0.11.
If
you
guys
don't
know
battery
is
open
source
Ras
game
engine
right,
so
it's
written
fully
in
rough
and
they
have
a
lot
of
new
updates
on
this
Lead
You
by
Walmart
versions
are
like
performance,
Improvement
right.
We
don't
like
that
right.
So,
if
you
guys
are
interested
in
various
game,
development
feel
free
to
go
and
have
a
look
so
collapse.
Yeah.
A
Some
exciting
news
in
the
rust
Community
right
more
job
opportunity,
if
you
guys
want
to
be
a
rust
developer.
So
we
have
new
open
source
data
as
an
open
source
company
right
just
three
years
old,
open
source
company,
and
they
recently
raised
four
million
around
4
million
of
fund
and
they
started
the
company
so
in
short,
polars.
It's
sort
of
like
an
alternative
to
tighten
data
frame.
So
if
anyone
are
in
this
I'm
sorry
pandas,
yeah
pandas,
so
it
alternatively
pandas
in
the
python
yeah.
A
You
might
use
pandas
right
frequently,
especially
for
data
scientists
right,
so
these
are
sort
of
an
alternative
to
that,
but
it's
written
in
Rust.
So
we
had
inherit
all
these
performance
from
Russ
and
it's
using
everything,
Apache
arrow
in
memory,
data
format,
all
those
kind
of
stuff.
So
yeah,
it's
pretty
cool.
You
guys
can
try
it
out.
It's
really
amazing
yeah.
So
for
for
us,
what's
the
difference.
C
So
what
difference
is
that
the
lazy,
the
evaluation
as
in
the
plus
you
can
you
can
load
partly
in
memory,
so
it
doesn't
load
everything
into
memory.
It
can
go
through
your
go
through
your
data
easily
like
go
through
something
like
that,
and
the
benefit
for
us
is
that
for
us
is
able
to
use
multiple
threats,
because
it's
designed
from
scratch
to
do
like
the
outdoor
press
and
make
it
faster
motivation
about
the
process,
I'm,
not
sure,
but
it
can
run
properly.
C
A
Yeah,
it's
still
very
young
like
three
three
only
three
years:
okay,
the
next
one
is
that
cash,
it's
something
in
the
crypto
World
3
right,
so
that
catch
is
basically
my
understanding
of
it
is
like
a
point,
but
with
privacy
implement
the
transaction
actually
public
right.
So
some
of
the
scientists
and
storage
is
an
issue.
They
fought
Bitcoin
early
and
they
added
its
privacy
features
which
actually
encrypt
all
your
personal
financial
information.
A
So
basically
itself
is
a
cryptocurrency
and
they
have
their
own
network,
so
they
they
recently
I
think
they
released
their
zebra,
which
is
like
they
are
note
the
note
in
their
Network
yeah,
it's
written
in
Russia,
holding
so
yeah,
so
you
guys
are
interested
in
cryptocurrency
number.
Three.
B
A
In
terms
of
how
we
Implement
writing
a
no,
you
guys
can
have
a
look.
A
Okay,
so
the
next
one
is
a
diesel
2.1.0,
so
diesel,
it's
a
Corey
builder
orm
in
Russia
right
so
who
say:
Russ
is
not
suitable
for
web
development
right
or
backend
right.
Basically,
you
have
everything
right.
You
have
some
web
framework.
You
have
Diesel
with
all
this
kind
of
stuff
and
even
have
a
dioxidants
right
for
front
end.
So
we
can
basically
do
the
full
stack
using
rust
right.
So
what
interesting
in
diesel
2.1.0?
Is
they
release
a
new
CLI
features?
A
Migration
features
where
you
can
migrate
your
screen
by
create
a
migration
generator
accessory
based
on
the
rasa
logo
like
we
Define
the
local
restaurant,
and
then
you
run
this
deep
screen.
It
will
check
the
difference
between
your
database
schema
and
your
local
schema,
and
then
it
will
generate
the
SQL
schema
for
you.
Then
you
can
run
and
migrate.
Yeah
database,
okay,.
C
C
One
thing
I
like
about
that
is
that,
because
you're
right
as
you
write
the
code,
then
the
compiler
will
compile
the
code
for
you.
It's
like
all.
You
write
that
all
a
lot
of
functions
like
this
table
not
insert
not
something,
and
then
the
compiler,
the
compound
right
when
you
cover
the
window
or
it
works
and
he's
just
using
the
normal
normal
function.
Although
we
have
some
code
generated
in
the
back.
C
D
C
C
It
doesn't
work,
but
this
is
everything
that
encoded
in
the
type.
So
the
query
drawing
that
join
those
then,
but
there's
downside
to
that
documentary
are
very
confusing
the
types
that
many
many
paintings
are
together.
That's
the
downside,
but
then
they
do
it
the
type
safe
not
just
for
postgres.
They
do
it
for
multiple
databases,
so
they're
just
doing
it
for
possible.
Syntax
then
deserve
you
support
the
type
for
that,
like
let's
say
you
can
use,
upset
I,
think
you
can
use
after
one
or
one
or
two
of
their
base,
one
some
other
devices.
C
You
can
use
option
and
Diesel
put
that
in
the
type
as
well.
So
in
type
when
you,
when
you
use
a
SQL
database,
you
have
to
answer
so
I
find
that
quite
interesting
and
the
SQL
X
is
the
alternative
to
discern
that.
You
write
across
SQL
the
difference.
The
sequence
and
interesting
idea
is
that
SQL
X,
you
test
the
code
against
your
database
during
common
time.
So
when
you
compile
you
test
whether
the
query
work
or
not,
foreign.
E
C
A
Christmas,
oh
then,
the
last
one
is
do
some
some
of
this
in
the
community.
There
are
some
proposals
with
upgrades.
Io
policies
are
so
this
actually
caused
a
little
bit
of
Dramas
in
the
rust
Community
itself,
so
they
actually
tried
to
tackle.
One
of
the
problems
we
found
in
the
crates
itself
seems
wanting
to
actually
reserve
the
name.
They
published
a
packet
reserve,
the
name
because
we
don't
have
any
space
in
the
last
phrase
right.
A
So
if
you
use
the
name
right,
it's
first
come
first
matter
you
can't
people
use
this
name.
If
you
like,
XXX
and
people
already
publish
package
access
actually
cannot
use
it.
So
there
are
some
people
like
purpose,
doing
this
to
reserve
name,
and
then
you
need
to
do
a
lot
of
stuff
like
technology
transfer
right.
So
basically
they
come
up
with
a
new
policy
to
tackle
this
problem,
saying
that
if
they
found
you
are
not
actively
developed
right
on
your,
your
publisher
packages
creates
right.
A
They
will
consider
you
against
the
policy
that
maybe
they
can
delete
your
character,
so
this
I
think
I
think
we
solve
these
issues
right
like
how
ghost
does
it
right?
You
can
have
my
ninja
affiliate,
slash,
Tokyo
right,
then
you
have
everyone
can
cast
their
own
Turkey
right
just
using
in
space
I'm,
not
sure
why
I
think
there
are
proposal
of
new.
A
That's
interesting,
this
topic
I
go
with
that
GitHub
pull
requests.
F
I
should
share
my
screen.
I
actually
share
my
screen
here
with
this
cohort.
E
B
E
F
F
F
F
You
keep
please
yes,
so
previously.
I
am
writing
Haskell
and
all
this.
So
when
we
are
writing
Haskell,
we
are
conscious
about
the
runtime
of
this,
but
because
of
the
nature
of
the
language
itself,
it
handles
all
of
the
IO
and
how
the
language
with
the
real
world
like
IO.
So
that
is
why
the
name
called
IO
and
the
urine
that
they
will
explain
to
it.
The
IOU
ring
is
a
Linux
specific,
a
new
mechanism,
a
new
mechanism
to
help
you
to
do
all
this
at
home
in
a
synchronous
way.
F
F
I'm,
the
one
who
will
be
presenting
the
IOU
ring
and
explain
to
you
in
that
on
how
iodine
works
and
what
is
the
new
case
of
it.
So
me
I
am
an
electronic
trading
and
enjoyer.
Why?
Because
it
Packers
a
lot
of
problems
where,
when
I'm
working
in
a
startup
doing
all
those
ciud
stuff
and
points-
and
all
this
and
I
find
that
doing
the
electronic
trading
and
other
military
will
actually
gives
me
a
lot
of
experience
and
a
lot
of
problem.
F
So
what
I
do
in
the
my
company
is
I
took
HPC
stuff,
which
PC
stands
for
high
performance
computing,
so
we
deal
with
low
latency
manner
of
code
because
the
market
is
so
fast,
so
we
have
to
head
fast
to
actually
process
this
and
then
we're
not
necessarily
to
be
fast.
We
need
to
be
a
low
emergency
because
Market
sometimes
can
be
inductive.
Sometimes
it
can
be
very
active.
So
we
need
to
process
these
packets
as
fast
as
responsive
k.
F
F
F
So
let's
say
if
you
love
The
Ring
fan.
If
someone
wants
to
buy
something
in
real
life
the
world,
not
in
the
middle
of
things
in
the
river,
if
you
try
to
buy
something
and
then
if
there's
no
seller,
what
we
will
do
you
can't?
You
can't
do
anything
because
there's
no
salary
to
sell
things,
so
that
is,
someone
needs
to
responsible
for
selling.
You
things
the
bigger
to
make
a
seller
of
this
thing.
So
in
order
to
have
this
kind
of
Trades
happen,
you
have
to
match
these
two
orders
by
itself
things.
F
So
the
market
maker
comes
up
is,
is
the
one
who
doing
like
a
Supermarket?
You
hold
the
inventory
for
you,
and
then
you
sell
things
yeah,
so
the
risk
they
got
is
that
you're
going
to
release
because
you
buy
something
and
then
you
need
to
sell
it.
You'll
hold
it.
You
need
to
hold
it
and
what,
if
the
price
wrong,
and
then
you
have
to
sell,
it
means
that
you
buy
high
and
you
sell
low,
that's
the
thing.
F
So
what
we
do
is
we
provide
the
liquidity
because
someone
if
they
want
to
sell
things
they
don't
have
a
buyer,
then
Hub.
We
provided
liquidity
in
the
financial
Market
and
then
second
thing
well
in
the
in
software
engineer
perfectly
we
are
is
our
requirement,
so
we
are
highly
sensitive
to
the
price
and
also
price
of
the
market.
So
we
need
to
keep
eyes
on
it.
We
need
to
listen
to
a
web,
socket
away
from
the
exchange.
There
will
be
a
market
free
coming
to
us
toward
us.
F
So
that's
what
we
do
for
the
price
update
if
you
want
to
do
the
cross
exchange
that
got
at
least
three
okay
and
then
for
those
assets.
If
you
want
to
process
multiple
assets,
you
must
have
multiple
websocket
of
it
from
different
exchange
from
different
endpoint,
maybe
from
different
Center
and
all
this
thing.
So
we
have
to
listen
to
for
every
trade.
We
have
to
listen
to
all
the
changes
stream
for
the
book
stream
and
then
once
you
execute
it
got
the
update
to
us
12th
the
executive,
Stream
So.
F
The
crypto
exchanges
will
make
us
make
a
lot
websocket
connections,
so
this
kind
of
connections.
It
may
be
easy
when
you
are
doing
it
known
in
an
asynchronous
way.
But
if
you
are
conscious
about
the
latency,
it
may
be
a
problem
because,
let's
say
you
have
hundreds
of
web
software
connections
and
then
you
will
keep
pulling
the
sockets
to
see.
If
there
is
a
update
or
not
in
the
system
way
in
the
OS,
you
need
to
keep
pulling
it
keep
pulling
it
and
all
this
so
for
us.
F
F
Yes,
we
do
have
a
Syntax
for
the
asynchronous
from
a
sequence
programming,
that's
the
same
and
awake
just
like
the
JavaScript.
So
whenever
you
so
people
who
write
JavaScript
will
find
the
runs.
It's
actually
quite
interesting
because
we
do
have
a
thing
and
a
way
and
for
function.
That
requires
you
to
avoid
things.
You
have
to
hiring
it.
You
need
to
prefix
it
as
C,
so
this
is
a
sync
function
inside
it
can
use
the
way.
F
F
F
That's
how
you
can
read
it
so
we're
going
to
read
it
and
then,
if
there
is
some
message,
then
you
process
a
message.
So
why
will
people
will
use
the
talk,
show
just
like
what
you're
doing
in
JavaScript.
You
want
the
task
to
be
the
ones
that
asynchronous
functions
to
be
working
as
sequence.
If
avoid
things
show,
the
next
thing
wouldn't
be
happening
before
this
one
finish.
E
F
F
Yeah
Okay,
the
third
Point
here.
The
goal
here
is
to
eliminate
the
OS
trade.
That's
one
thing
that
works
similar
to
this
one,
which
is
the
OS
trade.
So
you
spawn
the
trade.
It
can
actually
really
work
the
background,
but
it
sure
the
Dockers
actually
uses
things.
Why
is
that?
Because
if
you
receive
the
thing,
anyone
knows
how
Tokyo
works.
F
All
right,
I
think
I'll
just
explained
the
always
interested
in
the
documenting.
So
if
I
am
the
one
who
write
the
OS
trade,
imagine
a
world
without
a
talk
show
and
without
the
same
so
we
will
spawn
always
trade
and
then
he
will
do
the
receiving
and
then
once
the
receive
actually
finish.
F
F
File,
you
get
a
file
descriptor.
This
is
a
file
in
OS
that
in
other
days
you
this
is
the
handle
of
this
task.
So
you
can
deal
with
this
tasks.
This
FD
is
a
unsigned
here.
Number
you
deal
with
this
thing:
bring
it
in
Tokyo
illness
not
necessarily
needs
to
pull
it.
F
Why
Tokyo
do
have
two
components?
One
is
Executor,
one
is
a
weaker
quicker
will
cool
for
you.
He
actually
will
listen
to
the
OS,
listen
for
the
event,
SD
wages,
another
fourth
descriptor
from
the
OS
is
not
necessarily
has
to
pull
it,
because
the
OS
will
tell
you
this
notify
you
and
then
the
weaker
will
break
up
this
doctor
us
this
occurred
personally
will
happen,
telling
you
this
away
and
then
you
can
process
it.
F
Multiple
web
functions
because,
let's
say
we
listen
to
Two
web
software
connections
and
then
the
frequency
is
different.
One
is
one
unit
and
then
another
one
is
two
minutes.
Then
you
were
blocking
until
the
one
minute
even
is
blocking
because
you're
wrong,
because
it's
blocking
so
you
need
blocking
and
I
will
wait
for
it
to
happen
and
then,
until
the
now
that
the
next
line
of
this
low
need
to
wait,
another
connections
happen.
So
what
we
will
do
is
we
have
a
doctor's
spot
to
respond
this
a
sync
task.
F
A
single
move
tells
us
that
this
is
a
computation
that
will
be
moved
to
a
doctoral
traits
with
Dr
spawn
one,
and
then
that
is
the
combination
we
do
so
in
the
line,
one
which
is
the
second
block.
The
line
one
is
actually
making
a
Channel
as
a
TX
partition,
RS
receiver,
so
you
receive
things
from
the
DX,
so
the
TX
will
be.
F
The
landform
is
TX.
The
TX
send
the
message
and
then
from
the
nine
that's
is
rx
will
be
receiving
the
the
message
so
in
the
loop
away
from
the
mpsc
channel
to
happens
so
that
this
second
to
sixth
line
will
be
installed.
In
the
background
is
background
moving
and
then
it's
not
blocking
immediately.
It
will
print
this
photo
this
line
out
and
then
either
look
blocking,
especially
the
infinite
Loop,
and
then
it
keeps
pulling
down.
F
F
F
F
Okay,
that's
one
thing:
we
let
the
talk
show
to
actually
deal
with
the
time.
How
do
they
pull
the
data?
How
do
they
process
the
data?
How
do
they?
What
if
there
are
a
lot
of
doctoral
traits-
and
there
is
only
one
CPU-
will
does
the
job,
so
the
doctor
will
actually
help
you
to
manage
all
the
CPU
time
slots.
F
They
will
have
a
queue
of
the
for
this
task
and
then,
when
you
submit
a
task
that
will
maintain
a
queue,
the
queue
is
all
those
the
tasks
we
sub
slot.
So
whenever
there's
a
result,
you're
right
to
be
slow
and
then
tells
the
Tokyo
okay,
this
is
what
happens.
Okay,
what
if,
in
the
same
time
there
are
multiple
slots,
get
written
in
it?
The
procure
will
randomly
choose
one
and
then
pass
it
to
you.
F
So
in
the
loop
you
try
to
receive
things,
it
wouldn't
be
so
precise,
as
in
you
get
the
result,
it
wouldn't
be
so
business
because
Tokyo
will
handle
it
for
you
and
it
depends
on
the
doctoral
run
times
charitable
state.
Okay.
So
this,
why
number
one
is
a
problem,
because
we
let
the
Tokyo
runtime
to
deal
with
the
pulling
kind
of
times
and
then
to
let
the
doctor
to
do
the
cancellations
of
tasks
and
then
because
Tokyo
will
do
it
for
us.
We
want
to
bypass
it.
F
We
will
use
to
try
to
see
which
is
another
not
blocking
function.
So
this
wouldn't
be
a
risk.
This
receipt
wouldn't
be
a
sync
function.
Already
we
use
a
try
receive
so
what
the
try
resistance
is.
It
will
pull
the
result.
Nco
is
empty,
so
empty.
What
we
do
we
skip
it.
So
in
a
BC
Loop
we
try
to
say
things,
keep
pulling
it,
keep
pulling
it
and
then
check
the
result.
F
F
F
From
the
first
line,
the
docker
scene,
mpsc
amount
is
a
part
of
the
Tokyo
runtime
is
implementation.
It
used
the
docules
weaker
to
do
a
signaling
to
Signal
the
another
end
of
the
process
that
oh,
that
I
already
wrote,
One
data,
so
you
need
to
fetch
it
away
the
web
called
notification
and
then
keep
putting
it.
So
you
want
to
eliminate
this
one
so
that
our
8
to
12
line
this
low
will
be
busy
speed
instead
of
a
weight
of
the
result.
F
So
there
are
a
few
data
structure.
This
data
structure.
There
are
a
few
data
structures
that
does
this
job
without
using
the
single
weight,
which
is
is
true
that
man
and
a
Cross
Beam,
and
then
we
me
me
in
my
company-
will
test
these
two
implementation
already
and
then
they
are
a
few
of
the
peak
force
in
there
when
you
are
dealing
with
a
low
latency
code,
which
is
the
first
one.
The
test
map
test
map
is
actually
a
concurrent
test
map.
F
So
he,
when
you
are
dealing
with
multiple
trades,
it
will
include
the
church
starting.
You
will
shut
all
these
part
of
the
hatchback
into
different
tracks.
F
F
So
what
is
the
television
I
need
to
explain
the
few
latency
for
you
guys.
Kevin
is
like
you
guys
heard
of
the
P99
gt95.
F
D
F
See
there
are
some
spice
of
it,
which
is
unexpected.
So
when
we
say
is
the
latency
of
this
Square.
So
this
graph
is
enough
to
repeat
the
idea
of
the
students
and
see
okay.
So
for
concurrent
concurrent
data
structure,
there
will
be
a
problem
when
we
dealing
with
this
okay,
when
we
are
doing
the
factual
changes
on
the
concurrent
data
structure,
we
will
have
to
either
block
on
the
right
side
or
the
result.
That
is
confirmed
because
two
trades
are
actually
operating
for
the
same
data
region
to
either
block
the
array.
F
To
tell
the
read
sorry
your
brother
right
and
then
you
let
the
rate
operation
clear
first
and
then
you
can
start
working
with
or
you
properly
and
then
keep
writing
things.
F
So
in
the
interval
of
writing
things
you
can
read
so
that
is,
will
be
some
more
or
something
Atomic
variables
happen
in
this
case
the
Cross
Beam
doesn't
introduce
a
lot
and
it
introduces
something
different
which
is
the
copy
of
the
data.
So
it
means
writing
things
and
then
you
can
keep
reading
it
and
when
you
are
doing
the
structural
changes,
let's
say
there
is
a
tree
B3
map
you
go
ahead,
you
go
another
level,
you
are
changing
the
structure
of
the
tree.
F
F
F
F
F
A
PSC
Channel
stands
for
multiple
producer,
single
consumer,
multiple
producer
producer
message
and
then
you
have
one
reader,
keep
consuming.
It
keep
dropping
the
message
when
you
practically
okay,
we
need
something
to
pull
the
result
and
the
system
call.
So
these
two
problems
actually
the
pulling
how
to
be
proven,
and
then
how
do
we
deal
with
the
system
core?
So
everything
happens?
So
every
ring
is
a
very
new
ways
of
dealing
with
the
asynchronous,
as
I
stated
in
the
beginning
of
the
talk.
F
F
So
for
this
brings
upper
when
you
are
dealing
with
the
task,
even
if
you
submit
a
task
on
the
contrary
of
the
popular
is
a
pool
base
because
I
keep
talking
about
result.
This
one
is
the
submission,
you
submit
a
task,
and
then
you
pull
the
pull
the
data
which.
F
And
how?
How
does
it
work
is
you're
gonna,
eat
params.
This
parameters
is
the
parameters
to
to
create
these
two
things,
and
then
you
call
this
function
from
the
leave.
Your
urine.
You
call
this
thing
and
then
it
will
occur
system
call
three
times
is
this
3
Ms
is
the
sqcq
and
the
sqe.
The
sqe
is
a
array
of
the
data
which
is
store
all
your
operations,
so
NF
is
a
memory
map
assist,
call
to
tell
the
colonel
to
give
us
memory
region.
F
So
how
do
we
submit
a
tasks?
We
create
an
sqe
which
is
the
submission
Q
entry
to
call
this
function
to
submit
it,
and
then
what
is
the
operations
that
support
in
this
one?
Basically,
there's
all
this
system
core
yeah,
it's
like
a
proceeding,
so
we
wrap
the
system
called
with
all
the
parameters,
all
the
arguments
it
needs,
and
then
you
submit
to
the
SQ
that
the
kernel
and
the
details
now
you
already
submit
to
this
SQ.
F
F
So
when
you
are
dealing
with
the
web
socket
receive
when
you
want
to
write
something
right,
that's
QE
will
be
right.
When
you
try
to
receive
things.
Let's
say
you
want
to
listen
to
a
best
soccer
connections
except
get
about
distributor.
Then
you
submit
another
sqe,
listen
received,
they
keep
receiving
the
data,
so
this
is
how
we
do
in
ioul
rate,
a
few
moments
later
once
the
task
is
finished
out.
So
this
is
a
CQ
from
the
CQ
you
can
prove
from
it.
You
can
get
the
condition
and
then
the
simple
look
iterate.
F
This
ring
buffer
taking
the
cqe,
which
is
the
completion
Shield
entry,
taking
all
these
tasks
from
it,
so
yeah
easy
pulling.
So
you
will
have
a
trick
to
busy
pulling
pull
all
this
data
you're
not
necessary
to
cool
the
color.
You
don't
need
to
make
a
system
call
to
the
kernel.
Tell
them
hey!
When
is
this
task
finish?
No
need
just
stick
from
this.
One
continues.
F
Yeah
and
then
the
structure
of
the
cqe
in
Russ
that
is
quite
communicated
because
I
read
from
the
code
it's
quite
complicated
and
it
is
a
wrap
of
the
C
libraries.
So
right
now
you
have
to
read
from
the
menu
the
Linux
main
page
and
all
this
to
get
the
actual
cqe
here.
I
am
I,
compile
it
for
you.
So
if
you
look
at
the
main
page
or
the
source
code
of
the
Linux
kernel,
it's
actually
is
is
that
symbol
is
this
and
then
for
the
user?
F
Data
is
actually
the
unique
idea
set
by
the
sqe,
which
is
the
one
who
said
by
you,
the
user
defined
one.
So
when
you
submit
the
task,
we
have
to
specify
the
unsign
s
number
to
the
do
it,
and
then
the
tasks
finish
pass
back
to
you,
the
user,
that
you
basically
need
to
index
the
tasks
that
you
created
and
then
what?
If
it
is
some
buffers
and
all
this
thing
it's
not
defined
by
the
bro.
F
You
base
on
the
flap,
you
do
the
buffer
select
the
Fret
to
get
the
thing
you
got
in
the
buffer.
What
buffer
is
it?
So
this
is
the
buffer
pointer,
so
we
have
to
give
it
a
buffer
to
it.
So
you
need
to
locate
it
yourself
and
pass
the
pointer
to
this
operation
and
do
basically.
This
is
a
system
called
which
is
very
low
level,
and
then
it's
not
mean
to
be
used
by
Obama
developer.
F
F
F
So
whenever
you
are
the
one
who
created
you
set
up,
this
IOU
ring,
you
actually
create
SQ
and
the
secret
the
SQ
and
the
CQ
on
the
user
side.
You
can
access
it
from
a
user
side.
Basically,
it's
a
pointer.
You
can
access
to
it
without
any
locks
without
any
system
called
thing,
but
the
kernel
does
have
the
pointer
to
this
secure
and
then
the
allegory
instance
does
help
you
to
manage
this
memory
region,
and
that
is
directly
writing
to
this
one.
So
no
need
to
pull.
F
F
You
manage
all
these
tasks
together
in
the
sequence
and
then
it
will
help
you
to
finish
it
and
the
result,
maybe
not
in
family
manner,
but
you
can
actually
pull
it
from
the
C2
so
far,
faster
faster
sorry.
So
what
do
we
do?
Because
you
see
because
we
theorize
all
these
and
then
let
the
kernel
to
actually
process
this
or
we
reduce
the
contact?
Switch?
F
F
Then
you've
got
two
ring
buffers
you
need
to
iterate.
So
when
there
are
a
lot
of
IO
ring,
you
basically
become
the
the
simulator,
which
is
the
legend
of
king
ring.
Buffers
yeah
is
that
efficient?
That
is
like
a
job
in
my
company
yeah,
because
I
deal
with
like
a
lot
of
exponential
growth
of
the
Ring
buffer,
so
I
will
call
myself
memory.
F
Me,
yes,
you
can
actually
use
a
command
line
to
to
ask
to
make
it
as
high
as
you
can.
Basically,
it's
just
the
size.
F
No
not
only
memory
size,
but
also
the
the
file
descriptor
we
made,
because
you
create
a
lot
of
descriptor
during
the
initial
State
yeah,
which
is
you,
wouldn't
you
wouldn't
face
this
problem
number.
So
this
is
how
I
got
the
information.
There
is
one
menu
written
by
The,
Meta
developer,
which
is
formerly
Facebook
G,
is
the
one
that
the
main
author
of
this
IO
urine.
So
he
just
manage
this
website,
which
is
quite
easy
to
do
with
Google.
If
you
type
a
lot
of
the
io
urine,
you
will
get
this
page.
F
F
Now
my
stack
is
not
finished.
So
when
I
tell
my
bosses,
yes,
we
already
reduce
a
lot
of
system
call,
but
unfortunately
they
are
still
quite
a
lot
of
system.
Core
happens,
it's
nearly
zero,
but
it's
not
zero.
Why
is
it
and
I
tell
him
that?
Okay,
because
here
we
receive
the
thank
you,
we
receive
things
receive
things
and
then
it's
only
used
one.
The
system
code
is
only
used
one.
So
if
you
want
to
reuse
it,
you
do
submit
another
call
receive.
F
Let's
say
we
need
to
keep
keep
looping,
keep
receiving
our
message
from
a
websocket
connections.
You
need
to
keep
submit
this
receive
in
the
list.
I
will
read,
okay,
keep
on
going,
keep
on
going,
keep
submit
and
then,
whenever
you
submit
it,
you
need
to
call
this
system
call.
I
will
ring
enter.
F
So
my
boss
tells
us
why
can't
you
be
optimizing
up
and
then
I
said?
Actually,
yes,
so
this
how
I
optimize
the
IOU
ring.
G
F
F
F
So
when
you
try
to
send
things
out,
that
is
a
string
but
you're
not
necessarily
need
to
pass
the
string
to
this
system
call.
You
can
pass
the
pointer
to
this
system
called
what
your
string
needs
to
become
past
multiple
string
in
order
to
this
system
call
and
how
does
get
together
system
core
work.
So
yeah
there
is
a
send
message:
sexy
sexy
means
zero
copy,
so
we
receive
the
IO
priority
things,
so
you
can
actually
pass
this.
I
o
Vector
to
it.
F
F
F
Because
that
is
a
background
track,
helps
you
to
pull
the
SQ
in
kernel,
so
no
need
to
keep
calling
the
SQ
IO
urine
enter
to
tell
it
will
have
a
spinning
Loop
to
spin
in
a
kernel
space
keep
looping
the
SQ
for
you,
the
current
distance,
so
there's
no
need
to
enter
okay,
and
then
this
one
when
I
use
this
it's
still
got
the
I
will
enter,
even
though
it
is
almost
empty
in
the
SQ.
So
I
look
in
the
menu.
Let's
see
why?
Because
there
is
one
parameter,
called
SQ
trade
idle.
F
This
is
a
timer,
so
whenever
there
is
no
IO
urine
enter,
it
will
help
you
to
do
this,
so
you
will
set
it
large
enough.
So
the
are
you
ring
instance
will
not
help
you
to
to
call
the
actor
again.
So
that's
what
we
do
to
make
zeros
is
called.
Another
thing
is
the
provided
button
so
parameter
buffer
is
a
very
new
thing,
which
is
happens
to
be
the
last
year,
feature
from
also
from
the
X
I'm,
not
sure
how
how
to
name
it,
how
to
spell
its
name
but
Expo,
okay,
explodes
Expo!
F
This
is
the
main
author
of
the
iot
ranking.
This
provide
us
the
provided
buffer
feature
so
for
the
password
is
like
you
receive
things,
but
now
you
can
get
multi-shot
receive
you
receive,
so
you
only
needs
to
submit
one
receive
multiple,
so
we
can
keep
receiving
all
this.
So
no
need
to
tell
the
kernel
to
key.
F
It's
like
you,
don't
need
to
resubmit
the
receipt
internal.
It
will
help
you
to
do
this
automatically.
So
don't
you
can
save
more
CPU
CPU
instruction,
Co-op
right,
so
it's
quite
complicated
and
then
I
just
trained
out.
But
what
we
got
is
the
QPS
increased
about
six
percent
and
then
the
latency
also
drops
also
I
didn't
have
the
Benchmark
of
the
latency.
So
that's
the
thing
so
the
user
provided
buffer
is
also
provided
by
you.
F
F
F
F
F
Why
is
it
that
is
because
of
the
websocket
free
the
web
socket
does
have
the
header,
so
you
need
to
how
how
much
how
much
length
if
I
forget,
is
to
to
slice
this
into
multiple
message,
and
then
you
need
to
calculate
how
much
length
the
verification
is
to
remove
the
invalid
characters.
That's
how
Troublesome
it
is
so
yeah.
F
The
final
part
of
this
coil
is
actually
how
are
we
integrate
in
the
rust,
because
this
is
still
a
very
native
ways
of
handling
the
iOS
ring,
although
rust
does
have
the
a
single
way,
but
for
Tokyo
as
I
say
it's
a
pool
base
in
this
system.
It's
actually
submission
phase
you're,
not
necessarily
need
to
put
things
instead,
the
way
you
submit
things
matters
so
Russ
just
have
some
debate
in
the
community,
which
is
the
same
rate
right
and
the
cool
stuff.
F
So
I
think
you
guys
can
actually
read
on
the
comments,
because
for
me,
I'm.
F
F
F
F
So
there
are
some
traits
in
future.
There
will
be
integrating
rust
to
properly
to
should
this
submission
based
asynchronous
model.
F
D
F
C
D
C
F
G
F
Basically,
talk
show
when
you
want
to
change
it
to
multiple
platform.
Let's
say
you
want
to
make
it
in
a
BSC
or
you
want
to
make
it
in
Windows
or
Linux.
This
is
the
one
you
need
to
change,
because
this
one
will
wait.
This
executed
this
for
this
higher
level
logic,
it's
still
rust,
it's
not
platform
dependent,
but
the
reactor
is
better
dependent.
So
if
you
change
code,
it's
here
but
as
I
said,
the
the
way
we
cool,
reportings
and
read
things
added
to
prove
the
current
result.
How
is
it
happen?
F
The
logic
is
not
suitable
for
ioul
ring,
because
I
will
ring
it's
not
proof
of
data
you
need
to
another.
Maybe
the
executed
here
needs
to
have
maintain
the
CPU,
keep
looping
and
then
return
to
the
tasks
need
to
change.
Yeah.
C
Yeah
right
there
are
two
types:
always
yes
and
then
the
other
one
is
completion
based
I,
the
four
ways
we
have.
We
call
KQ
and
IO
EPO
is
the
one
intimidation,
unique
space
system
and
windows
have
their
own
have
their
own
stuff
as
well.
Here
because
Tokyo
is
a
the
model
of
the
rust
facing
away,
is
based
on
more
like
polling
kind
of
version.
F
And
then,
even
for
a
single
way,
a
single
which
syntax
the
using
a
weight,
syntax.
D
F
One
also
so
this
one
does
have
the
book
Ready
or
Not
Ready,
which
you
won't
see
that
in
iOS,
because
I
will
read
you
got
this
result.
Really
it
wouldn't
be.
Not
really
it
won't
be
done.
You
will
record
this
result
so
of
the
a
thing
away
stuff
in
Tokyo
is
built
on
top
of
these
few
Futures.
So
if
you
want
to
reuse
it
with
the
hardware,
I
say
that
you
will
not.
So
if
you
want
to
use
that
you
know
you
can
use
that
feature.
G
B
F
F
How
big
it
is
how
many
slot
years
so,
whenever
you
receive
a
thing
it
will
write
to
this
buffer
in
one
swap
one
offset
it
is
basically
trick
is
a
remarkable.
So
it
gives
you
this
thing
and
then
in
the
CQ.
F
F
E
F
Single
way,
but
in
the
back
end
is
using
I
will
do
a
task
at
you
just
pull
from
you.
So
when
you
pull
from
you,
yes,
you
will
have
a
memory
limit.
So
when
you
use
this
one,
you
have
to
increase
the
memory
limit
maximum
exercise
because
it
helps
you
to
put
inside
that.
You
use
a
lot
of
memory
to
help
you
to
improve
things.
F
G
F
F
Trade
and
nothing
one
trade
per
connection
or
definitely
will
crash
one,
because
you
want
trade,
you
use
like
4mb
of
memories.
You
definitely
will
run
out
of
memories.
You
need
to
solve
this
up
to
solve
this.
Then
you
see,
oh
okay,
your
connections
will
take
a
lot
of
but
memories
or
you
take
a
lot
of
physical.
F
We
keep
pulling
data
yeah,
you
keep
bringing
the
data
to
frequent
means.
So
so
you
cannot
handle
a
lot
of
users,
so
users
will
need
to
wait
for
your
server
to
access
this,
and
then
you
solve
it.
You
optimize
by
key
point
which
the
problem
is
one
by
one
to
solve
and
softer
because
chunk
of
problem
first,
so.
F
E
C
F
I
am
not
sure
about
how
much
faster,
because
if
you
want
to
measure
how
much
faster
you
have
to
actually
look
at
the
time
the
kernel,
the
kind
of
fact
they
will
have
a
time
when
they
receive
because
I
it
may
be
because
I,
how
do
they
say
this
one?
So
it
depends
on
how
I,
so
the
time
I
observe
is
when,
when
I
take
the
result
from
CQ.
Actually
it
is
Maybe
seconds.
F
Back
then,
the
kernel
right
to
the
CQ
so
I
don't
have
any
way
to
actually
observe
that
I
understand
yeah,
but
we
do
have
reduce
the
system
call
to
zero
during
the
program
or
part.
And
then
we
compare
neatly
compare
from
the
800
microsecond
down
to
eight
micro.
Second,.