🏁Александр
ошибок нет просто зависает на чтении из буфера
🏁Александр
// Buffer large enough for 10 USB packets from endpoint 6.
buf := make([]byte, epIn.Desc.MaxPacketSize)
// Repeat the read/write cycle 10 times.
for i := 0; i < 10; i++ {
log.Print("Read!")
// readBytes might be smaller than the buffer size. readBytes might be greater than zero even if err is not nil.
readBytes, err := epIn.Read(buf)
if err != nil {
fmt.Println("Read returned an error:", err)
}
if readBytes == 0 {
log.Fatalf("IN endpoint 6 returned 0 bytes of data.")
}
}
🏁Александр
строго по ману вроде
🏁Александр
если девайс выключить, то упадет в "og.Fatalf("IN endpoint 6 returned 0 bytes of data.")"
Roman
Daniel
ну вот проксики
Daniel
все
Мерль
🏁Александр
лазерная
🏁Александр
2018/06/22 20:29:42 020.027 10c4:ea60 CP210x UART Bridge / myAVR mySmartUSB light (Cygnal Integrated Products, Inc.)
2018/06/22 20:29:42 Protocol: (Defined at Interface level)
2018/06/22 20:29:42 Configuration 1:
2018/06/22 20:29:42 --------------
2018/06/22 20:29:42 Interface 0 alternate setting 0 (available endpoints: [0x02(2,OUT) 0x81(1,IN)])
2018/06/22 20:29:42 Vendor Specific Class
2018/06/22 20:29:42 ep #1 IN (address 0x81) bulk [64 bytes]
2018/06/22 20:29:42 ep #2 OUT (address 0x02) bulk [64 bytes]
2018/06/22 20:29:42 --------------
🏁Александр
соотвественно делаю
🏁Александр
cfg, err := dev.Config(1)
if err != nil {
log.Fatalf("%s.Config: %v", dev, err)
}
defer cfg.Close()
intf, err := cfg.Interface(0, 0)
if err != nil {
log.Fatalf("%s.Interface: %v", cfg, err)
}
defer intf.Close()
epIn, err := intf.InEndpoint(0x81)
if err != nil {
log.Fatalf("%s.InEndpoint: %v", intf, err)
}
Daniel
я в курсе, зачем splice :)
он у меня ровно в двух местах.
при этом на тех же местах есть tls handshake, так что пока (до перехода на ec) мне вообще пофиг, что делает весь мой код. важно только насколько быстро вычисляется rsa ключ
Anonymous
допустим есть структура Person struct { Money int }
у нее есть функция func (p *Person)work() { for { p.Money++ } }
если я запущу эту функцию в горутине, а потом объект Person приравняю к nil
Anonymous
в горутине будет паника?
Daniel
объект ты никак к nil не приравняешь
Daniel
с указателем делай что хочешь - в методе уже его копия
Anonymous
аа
Daniel
а вот если ты полезешь менять то, на что указатель - возможны варианты, но паника врядли
Anonymous
я имел в виду это
keks := Person { Money: 228 }
go keks.Work()
keks = nil
Заур
Так не получится сделать же
Мерль
Заур
Мерль
🏁Александр
да вот документации к ней не шло
🏁Александр
просто вручили две железки и привет 🙂
Заур
Если сделаешь keks:= &Person{} то сможешь сделать. Но это не сотрёт выделенную память, которая используется методом
🏁Александр
но вроде бы как без всякой иницилизации как то ее запускали на прослушку
Anonymous
а, я тупанул, извините 😂😂
🏁Александр
она даже в консоль как то отдавала
Мерль
🏁Александр
а она не отдает управление
🏁Александр
0 байт я бы еще понял
🏁Александр
оно буфер читает и читает
🏁Александр
цикл 1 итерацию закончить не может
🏁Александр
пока девайс не отключишь
🏁Александр
меня смушает вот приписка на 1 интерфейсе...
🏁Александр
CDC Data (Unused)
Kirill
Kirill
для одного такого поля
Dmitry
есть бенч тесты и просто тестирование класса - есть какие то правило как называть если они в отдельных файлах? т.е. файл с кодом chain , файлы с тестами chain_test, а файл с бенчами chain_bench_test.go ?
🏁Александр
🏁Александр
больше ничего вкусного не нашел
Anonymous
Anonymous
я поставил в структуру ctx и таймер
таймер при срабатывании по таймауту вызывает context.CancelFunc
а потоки ее мониторят
Kirill
Там реально инкремент?
Anonymous
Kirill
Anonymous
Kirill
Угу
Anonymous
Нет
Anonymous
Это просто пример
Anonymous
Мне нужен был нормальный способ убивать горутины
Anonymous
Вот заюзал context с таймером
Alex
Й
.
Почему порядок полей структуры влияет на производительность?
Kirill
.
Лень
Kirill
Лень
Ну а всем лень объяснять дважды два каждому по отдельности
kås
Kirill
Обычно да
.
Kirill
Когда человеку нужна такая производительность, он обычно уже и так это знает
kås
Особенно в ущерб читабельности
Kirill
.
Кстати, о какой производительности идёт речь?
kås
kås
.
Kirill
Тем, кто должен выжать десятки гигабит в секунду на слабом железе и ему уже нечего оптимизировать
Kirill
В общем, почти что никому