рдХреЛрдб рдореЗрдВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╕рдорд░реВрдкрддрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдкреИрдЯрд░реНрди: рдЧрддрд┐рд░реЛрдз

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реБрдирд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдореБрд▓рд╛рдХрд╛рдд рдХреА, рдЬреИрд╕реЗ рдХрд┐ рдЧрддрд┐рд░реЛрдз рдФрд░ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ред рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЖрдкрд╕реЗ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫреВрдВ рдХрд┐ рдЧрддрд┐рд░реЛрдз рдХреНрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреНрд▓рд╛рд╕рд┐рдХ рдбреЗрдбрд▓реЙрдХ рддрд╕реНрд╡реАрд░ рдпрд╛ рдЗрд╕рдХреЗ рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╣ рдХреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:



рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрдВ рд╕рдВрд╕реНрдерд╛рди рдореЗрдВ рдорд┐рд▓рддреА рд╣реИ, рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреБрд╕реНрддрдХреЛрдВ рдФрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧрддрд┐рд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдореНрдпреВрдЯреЗрдХреНрд╕, рдЗрд╕рдХреА рд╕рднреА рдорд╣рд┐рдорд╛ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рд░ рдХреЛрдИ рдХреЛрдб рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ рддреНрд░реБрдЯрд┐ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЙрд╕ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо StartUpdate, CheckAndUpdate рдФрд░ Stop рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реИ:

std::recursive_mutex m_mutex; Future m_future; void Stop() { std::unique_lock scoped_lock(m_mutex); m_future.Wait(); // do something } void StartUpdate() { m_future.Wait(); m_future = Future::Schedule(std::bind(&Element::CheckAndUpdate, this), std::chrono::milliseconds(100); } void CheckAndUpdate() { std::unique_lock scoped_lock(m_mutex); //do something } 

рдЖрдкрдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдХрдмреНрдЬрд╛ рд╣реЛрдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдЕрдкреЗрдХреНрд╖рд╛ рд╣реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЕрдЧрд░ рдпреЗ рдХреИрдкреНрдЪрд░ рдЙрд╕реА рдереНрд░реЗрдб рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореНрдпреВрдЯреЗрдХреНрд╕ рдЫреВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреИрдкреНрдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдзрд╛рдЧрд╛ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рднрд╡рд┐рд╖реНрдп :: рдЕрдиреБрд╕реВрдЪреА рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (n рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ) рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛

рдЕрдм рд╣рдо рдкреНрд░рд╛рдкреНрдд рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ:



рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рджреЛ рддрдереНрдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреА рд░рд┐рд╣рд╛рдИ рдХреА рдЙрдореНрдореАрдж рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ CheckAndUpdate рдХреЙрд▓рдмреИрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдЧрддрд┐рд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдирд┐рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдЪрд┐рддреНрд░ рдкрд░ рдЖрддрд╛ рд╣реИред рдЬрдм рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд╕реНрддреБ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ, рддреЛ рд╣рдо рд╕реАрдзреЗ m_future рд╕рдВрд╕рд╛рдзрди, рдХреЙрд▓рдмреИрдХ рдХреЛ рд╕реАрдзреЗ рдХреИрдкреНрдЪрд░ рдХрд░рддреЗ рд╣реИрдВ
m_future рд╕реЗ рдЬреБрдбрд╝рд╛:



рдЧрддрд┐рд░реЛрдз рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреНрд░рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рдЗрд╕реЗ CheckAndUpdate рдЪрд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди n рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рддреБрд░рдВрдд рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
  2. рд╕реНрдЯреЙрдк рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рд╣рдо рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рд╕рдВрд╕рд╛рдзрди рдПрдХ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд╣рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП m_future рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрднреА рддрдХ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
  3. CheckAndUpdate рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рд╣рдо рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд╕рдВрд╕рд╛рдзрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдФрд░ рдзрд╛рдЧрд╛ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рд╕рдм рд╣реИ: рд╕реНрдЯреЙрдк рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдзрд╛рдЧрд╛ CheckAndUpdate рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдзрд╛рдЧрд╛, рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдкрдХрдбрд╝ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рдХреНрд▓рд╛рд╕рд┐рдХ рдЧрддрд┐рд░реЛрдз рд╣реИред рдЖрдзрд╛ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдкрддрд╛ рдЪрд▓рд╛ рд╣реИред

рдЕрдм рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рез
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд╕реЗ рдЧрддрд┐рд░реЛрдз рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдЯреЙрдк рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣рд╛рдВ рдЧрддрд┐рд░реЛрдз рдХрд╛ рдорд╛рдорд▓рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ CheckAndUpdate рдореЗрдВ m_future рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕реА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рджреГрд╖реНрдЯрд┐рдХреЛрдг реи
  1. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк CheckAndUpdate рдореЗрдВ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдЪреВрдВрдХрд┐ рд╣рдо рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдЯреЙрдорд┐рдХреНрд╕ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдерд╛) рдореЗрдВ рд░реАрдореЗрдХ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреА рдкрд╣реБрдВрдЪ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
  3. рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЪрд░, рдЬрд┐рд╕рдХреА рдкрд╣реБрдВрдЪ рд╕реАрдорд┐рдд рдереА, рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдЯреЙрдорд┐рдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдореНрдпреВрдЯреЗрдХреНрд╕ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдпрд╣рд╛рдБ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЧрддрд┐рд░реЛрдз рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╕реАрдзрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ!

Source: https://habr.com/ru/post/hi442448/


All Articles