• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Golang voyeur.Value类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/juju/utils/voyeur.Value的典型用法代码示例。如果您正苦于以下问题:Golang Value类的具体用法?Golang Value怎么用?Golang Value使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Value类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: TestSetMembersErrorIsNotFatal

func (s *workerSuite) TestSetMembersErrorIsNotFatal(c *gc.C) {
	coretesting.SkipIfI386(c, "lp:1425569")

	DoTestForIPv4AndIPv6(func(ipVersion TestIPVersion) {
		st := NewFakeState()
		InitState(c, st, 3, ipVersion)
		st.session.setStatus(mkStatuses("0p 1s 2s", ipVersion))
		var setCount voyeur.Value
		st.errors.setErrorFuncFor("Session.Set", func() error {
			setCount.Set(true)
			return errors.New("sample")
		})
		s.PatchValue(&initialRetryInterval, 10*time.Microsecond)
		s.PatchValue(&maxRetryInterval, coretesting.ShortWait/4)

		w := newWorker(st, noPublisher{})
		defer func() {
			c.Check(worker.Stop(w), gc.IsNil)
		}()

		// See that the worker is retrying.
		setCountW := setCount.Watch()
		mustNext(c, setCountW)
		mustNext(c, setCountW)
		mustNext(c, setCountW)
	})
}
开发者ID:imoapps,项目名称:juju,代码行数:27,代码来源:worker_test.go


示例2: WatchValue

// WatchValue returns a NotifyWatcher that triggers
// when the given value changes. Its Wait and Err methods
// never return a non-nil error.
func WatchValue(val *voyeur.Value) state.NotifyWatcher {
	n := &notifier{
		w:       val.Watch(),
		changes: make(chan struct{}),
	}
	go n.loop()
	return n
}
开发者ID:exekias,项目名称:juju,代码行数:11,代码来源:mock_test.go


示例3: WatchStrings

// WatchStrings returns a StringsWatcher that triggers
// when the given value changes. Its Wait and Err methods
// never return a non-nil error.
func WatchStrings(val *voyeur.Value) state.StringsWatcher {
	n := &stringsNotifier{
		w:       val.Watch(),
		changes: make(chan []string),
	}
	go n.loop()
	return n
}
开发者ID:bac,项目名称:juju,代码行数:11,代码来源:mock_test.go


示例4: TestSetMembersErrorIsNotFatal

func (s *workerSuite) TestSetMembersErrorIsNotFatal(c *gc.C) {
	testForIPv4AndIPv6(func(ipVersion testIPVersion) {
		st := newFakeState()
		initState(c, st, 3, ipVersion)
		st.session.setStatus(mkStatuses("0p 1s 2s", ipVersion))
		var isSet voyeur.Value
		count := 0
		setErrorFuncFor("Session.Set", func() error {
			isSet.Set(count)
			count++
			return errors.New("sample")
		})
		s.PatchValue(&initialRetryInterval, 10*time.Microsecond)
		s.PatchValue(&maxRetryInterval, coretesting.ShortWait/4)

		expectedIterations := 0
		for d := initialRetryInterval; d < maxRetryInterval*2; d *= 2 {
			expectedIterations++
		}

		w := newWorker(st, noPublisher{})
		defer func() {
			c.Check(worker.Stop(w), gc.IsNil)
		}()
		isSetWatcher := isSet.Watch()

		n0 := mustNext(c, isSetWatcher).(int)
		time.Sleep(maxRetryInterval * 2)
		n1 := mustNext(c, isSetWatcher).(int)

		// The worker should have backed off exponentially...
		c.Assert(n1-n0, jc.LessThan, expectedIterations+1)
		c.Logf("actual iterations %d; expected iterations %d", n1-n0, expectedIterations)

		// ... but only up to the maximum retry interval
		n0 = mustNext(c, isSetWatcher).(int)
		time.Sleep(maxRetryInterval * 2)
		n1 = mustNext(c, isSetWatcher).(int)

		c.Assert(n1-n0, jc.LessThan, 3)
		resetErrors()
	})
}
开发者ID:klyachin,项目名称:juju,代码行数:43,代码来源:worker_test.go



注:本文中的github.com/juju/utils/voyeur.Value类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang voyeur.Watcher类代码示例发布时间:2022-05-23
下一篇:
Golang symlink.Read函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap