Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
633 B
Go
35 lines
633 B
Go
package yamux
|
|
|
|
import "time"
|
|
|
|
type ping struct {
|
|
id uint32
|
|
// written to by the session on ping response
|
|
pingResponse chan struct{}
|
|
|
|
// closed by the Ping call that sent the ping when done.
|
|
done chan struct{}
|
|
// result set before done is closed.
|
|
err error
|
|
duration time.Duration
|
|
}
|
|
|
|
func newPing(id uint32) *ping {
|
|
return &ping{
|
|
id: id,
|
|
pingResponse: make(chan struct{}, 1),
|
|
done: make(chan struct{}),
|
|
}
|
|
}
|
|
|
|
func (p *ping) finish(val time.Duration, err error) {
|
|
p.err = err
|
|
p.duration = val
|
|
close(p.done)
|
|
}
|
|
|
|
func (p *ping) wait() (time.Duration, error) {
|
|
<-p.done
|
|
return p.duration, p.err
|
|
}
|